1 2 3 4 5 6 7 | SELECT ASNDKY, WAREKY, YQTYASN_I FROM ASNDH WHERE 1=1 AND DOCDAT = '20170531' ; | cs |
이 쿼리를 실행하면 결과가 이렇게 나온다.
YQTYASN_I라는 컬럼의 값의 수만큼 row를 뿌려줘야 하는 경우가 생겼는데 어떻게 해야 할까?
오라클에서는 CONNECT BY를 사용하면 해결할 수 있다.
1 2 3 4 5 6 7 8 9 10 | SELECT H.ASNDKY, H.WAREKY, H.YQTYASN_I FROM ASNDH H, (SELECT LEVEL NUM FROM DUAL CONNECT BY LEVEL < 100) B WHERE B.NUM BETWEEN 1 AND H.YQTYASN_I AND H.DOCDAT = '20170531' ORDER BY ASNDKY ; | cs |
여기서 CONNECT BY절의 LELEL값은 YQTYASN_I의 최대값보다 크게 설정해야 한다.
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[오라클] DB Link 생성하기 (0) | 2017.08.17 |
---|---|
[Orange] 오렌지에서 오라클(Oracle) 다른 유저로 DB 가져오기(import) (0) | 2017.07.27 |
[오라클] 테이블정의서 자동으로 만들어주는 Oracle 쿼리 (Primary Key 여부 포함) (0) | 2017.06.26 |
[오라클] 동적쿼리를 실행해서 원하는 값을 가져오는 Oracle 함수 예제 (0) | 2017.06.23 |
[Oracle] 오라클 락(lock) 걸렸을 때 사용할 유용한 쿼리들 (0) | 2017.06.08 |
댓글