P.K||시작숫자|끝숫자|홀수(홀수,짝수,홀/짝전체)
형태 테이블입니다.
중복되는 숫자가 구간이 없는지 검증 할려고 합니다.
쿼리 문의 드립니다.^^
예를 들면, 아래 두 레코드가 10이 중독되는데 해당 대상을 찾고 싶습니다.
1|1|10|짝수
2|10|11|전체
WITH t AS ( SELECT 1 pk, 1 sno, 10 eno, '짝수' gb FROM dual UNION ALL SELECT 2, 10, 11, '전체' FROM dual UNION ALL SELECT 3, 11, 15, '홀수' FROM dual ) SELECT no , LISTAGG(pk, ',') WITHIN GROUP(ORDER BY pk) pk_list FROM (SELECT pk, sno, eno, gb , sno + lv - 1 no FROM t , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 99) WHERE lv <= eno - sno + 1 ) WHERE MOD(no, 2) LIKE DECODE(gb, '짝수', '0', '홀수', '1', '전체', '%') GROUP BY no HAVING COUNT(*) > 1 ORDER BY no ;
언제나 마농님 감사합니다. ^^