쿼리로 0채워진 IP주소 만들어 유효범위내인지 조회하는 쿼리 셈플

 

SELECT  T.*
FROM   (SELECT  T.IP_NM
        ,       REGEXP_REPLACE(REGEXP_REPLACE(T.IP_FR, '(\d+(\.|$))', '00\1'), '(\d{3}(\.|$))|.', '\1') AS IP_FR
        ,       REGEXP_REPLACE(REGEXP_REPLACE(T.IP_TO, '(\d+(\.|$))', '00\1'), '(\d{3}(\.|$))|.', '\1') AS IP_TO
        ,       REGEXP_REPLACE(REGEXP_REPLACE(T.IP_RM, '(\d+(\.|$))', '00\1'), '(\d{3}(\.|$))|.', '\1') AS IP_RM
        
        FROM   (SELECT  T.IP_NM                                             AS IP_NM
                ,       MAX(DECODE(T.TYPE_CD, 'IP_FR', T.IP_ADDR))          AS IP_FR
                ,       MAX(DECODE(T.TYPE_CD, 'IP_TO', T.IP_ADDR))          AS IP_TO
                ,       '123.111.10.12'                                     AS IP_RM
                
                FROM IP_TABLE T
                GROUP BY T.IP_NM) T
        ) T
        
WHERE T.IP_RM BETWEEN T.IP_FR AND T.IP_TO;