Oracle/DB2014. 11. 10. 09:54
728x90

10진수를 2진수로


SQL>

SELECT  REPLACE(MAX(SYS_CONNECT_BY_PATH(bit, ',')), ',') bin

FROM    (

            SELECT  COUNT(*) OVER() - LEVEL + 1 level#,

                    DECODE(TRUNC(deci / POWER (2, LEVEL)), ROUND(deci / POWER (2, LEVEL)), 0, 1) bit

            FROM    (

                        SELECT  7 deci

                        FROM    DUAL

                    )

            CONNECT BY POWER(2, LEVEL - 1) <= deci

        )

START WITH level# = 1

CONNECT BY PRIOR level# = level# - 1;


BIN

--------------------------------------------------------------------------------

111




2진수를 10진수로


SQL>

SELECT  BIN_TO_NUM(1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1) dec

FROM    DUAL;


       DEC

----------

     12345

Posted by swanseo