이런 쿼리가 가능한지.... 궁금합니다. 0 7 1,964

by 김선호 [2007.12.13 21:08:02]


질문 많이 올려서 죄송합니다.;;;;

 

질문은 다름아니고.

 

SELECT 4 FROM DUAL

 

이 있습니다.

 

이 때, 결과를

1

1

1

1

--숫자(4)만큼 줄이 출력, 2면 2줄

이렇게 출력 할 수 있는 방법이 있는지 궁금합니다. 현재 제 수준에는 그냥 SQL로는 안될것 같은데 혹시 방법이 있는지.... 고수님들 조언 부탁드립니다.

by 웅 [2007.12.13 00:00:00]
select 1
from dual
connect by level <= 4 --4줄

이런건가요? ^^;

by 채용근 [2007.12.13 00:00:00]
SELECT 1 FROM (
SELECT :A A FROM DUAL
) A, ( SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= 31 ) B
WHERE A.A >= B.LV

:A에 숫자 입력 후 실행 이거인가요?

by finecomp [2007.12.14 00:00:00]
CONNECT BY를 써도 되겠고...

SELECT 1
FROM dict --> 아무 테이블이나 항상 row가 충분한 것
WHERE ROWNUM <= :in_cnt

건승하시길...수고하세요~~

by 범정 [2007.12.14 00:00:00]
이런 쿼리가 필요할때가 언제 있나요?

by 김선호 [2007.12.14 00:00:00]
문득 이런쿼리가 되는지 궁금해서 올려봤습니다. connect by 를 이용하면 되는군요.... 쿼리의 세계란.... 답글 달아주신분들 감사합니다!

by 김선호 [2007.12.14 00:00:00]
아 질문하나만 더 해도 될련지..... connect by가 설명에서 보니
설명: 이 절을 이용하여 계층 질의에서 상위계층(부모행)과 하위계층(자식행)의 관계를 규정 합니다.
- 보통 PRIOR 연산자를 많이 사용 합니다..
- 서브쿼리를 사용할 수 없습니다..

라고 되어 있는데 위에서와 같이 단독으로 connect by 만 쓰일 때는 어떤 뜻입니까?

by finecomp [2007.12.14 00:00:00]
connect by level <= 숫자
형태의 쿼리는 connect by를 시도하는 결과셋이 반드시 1row가 보장될 때만 정확히 숫자개의 row를 copy하여 만들어주는 역할을 하게 됩니다.

2개 이상의 결과셋을 이 형태로 쿼리하면 의도한 수보다 많아질 수 있습니다.

건수에 대한 자세한 사항은 쏘쿨에도 있으니,
쏘쿨사이트에서 "connect by level 절"로 검색하여 내용을 보셔도 괜찮을 듯...^^;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입