http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1010&seq=57&page=2&position=2글쓴이 : 김홍선
문제)
다중의 결과값을 하나의 행으로 컴마로 분리해 출력하는 방법을 알고싶습니다.
return
=========
홍길동
김길동 --> 홍길동, 김길동, 이길동
이길동
==========
답변)
emp.ename 컬럼을 예로 들어 쿼리를 구성해 보면 아래와 같다.
정확히 어떤 컬럼들이 어떤 역할을 하는지 숙지하는 것이 중요.
SELECT SUBSTR (MAX (SYS_CONNECT_BY_PATH (ename, ',')), 2) path#
FROM (SELECT ename, ROWNUM rnum
FROM emp)
START WITH rnum = 1
CONNECT BY PRIOR rnum = rnum - 1
http://otn.oracle.co.kr/forum/forum_open_view.jsp?forum_seqno=20060511113925&forum_cate=SQL
근데 위에서은 잘 안되네...
로우 수가 DYNAMIC하게 변동된다면 다른 방
법을 사용하셔야할 것같네요.
그래서 9버전부터지원되는 SYS_CONNECT_BY_PATH 함수를 이용한
다른 방법으로 한번 구현 해봤습니다.
아래의 데이타가 존재한다면
ENAME
---------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
SELECT PATH
FROM
(
SELECT SYS_CONNECT_BY_PATH(ENAME,'','') PATH
FROM
(SELECT ENAME,ROWNUM LEVEL1, ROWNUM-1 LEVEL2
FROM EMP)
START WITH LEVEL2=0
CONNECT BY PRIOR LEVEL1=LEVEL2
ORDER BY LEVEL DESC
)
WHERE ROWNUM = 1
결과
PATH
----------------------------
SMITH,ALLEN,WARD,JONES,MARTIN,BLAKE,CLARK,SCOTT,KING,TURNER,ADAMS
문제)
다중의 결과값을 하나의 행으로 컴마로 분리해 출력하는 방법을 알고싶습니다.
return
=========
홍길동
김길동 --> 홍길동, 김길동, 이길동
이길동
==========
답변)
emp.ename 컬럼을 예로 들어 쿼리를 구성해 보면 아래와 같다.
정확히 어떤 컬럼들이 어떤 역할을 하는지 숙지하는 것이 중요.
SELECT SUBSTR (MAX (SYS_CONNECT_BY_PATH (ename, ',')), 2) path#
FROM (SELECT ename, ROWNUM rnum
FROM emp)
START WITH rnum = 1
CONNECT BY PRIOR rnum = rnum - 1
http://otn.oracle.co.kr/forum/forum_open_view.jsp?forum_seqno=20060511113925&forum_cate=SQL
근데 위에서은 잘 안되네...
로우 수가 DYNAMIC하게 변동된다면 다른 방
법을 사용하셔야할 것같네요.
그래서 9버전부터지원되는 SYS_CONNECT_BY_PATH 함수를 이용한
다른 방법으로 한번 구현 해봤습니다.
아래의 데이타가 존재한다면
ENAME
---------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
SELECT PATH
FROM
(
SELECT SYS_CONNECT_BY_PATH(ENAME,'','') PATH
FROM
(SELECT ENAME,ROWNUM LEVEL1, ROWNUM-1 LEVEL2
FROM EMP)
START WITH LEVEL2=0
CONNECT BY PRIOR LEVEL1=LEVEL2
ORDER BY LEVEL DESC
)
WHERE ROWNUM = 1
결과
PATH
----------------------------
SMITH,ALLEN,WARD,JONES,MARTIN,BLAKE,CLARK,SCOTT,KING,TURNER,ADAMS
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
94 | 테이블 열항목을 행항목으로 변경하는 팁 | 구퍼 | 2011.01.11 | 8835 |
93 | 오라클 DB 링크 만들기 | 구퍼 | 2011.01.06 | 6826 |
92 | select -> update 구문 샘플 | 구퍼 | 2010.01.21 | 5936 |
91 | Instant Client 사용법 | 구퍼 | 2009.12.30 | 6051 |
90 | Conditions | 구퍼 | 2008.09.17 | 5844 |
89 | Basic Delete Statements | 구퍼 | 2008.09.17 | 4671 |
88 | Basic Update Statements | 구퍼 | 2008.09.17 | 4622 |
87 | Unix, Oracle, Pro*C작성 입찰공고 | 운영자 | 2003.06.05 | 4458 |
86 | Unix, Oracle, Pro*C작성 구인구직게시판 | 운영자 | 2003.06.05 | 4887 |
85 | Unix, Oracle, Pro*C작성 자유게시판 | 운영자 | 2003.06.05 | 4745 |
84 | 최단거리찾기 혹은 멀리 떨어진 두지점간의 거리의 합구하기 | 박상현 | 2006.11.07 | 3690 |
83 | PL/SQL에서 쿼리시 Array Processing 처리방법 | 박상현 | 2006.10.27 | 3622 |
82 | 시간선분(선분이력)의 합집합 구하기 | 박상현 | 2006.06.13 | 5159 |
81 | 최대공약수, 최소공배수 구하기 | 박상현 | 2006.06.13 | 3839 |
80 | 문자열에서 특정 단어 갯수 구하기 | 박상현 | 2006.06.13 | 3573 |
79 | 소수(prime number) 구하기 | 박상현 | 2006.06.13 | 3425 |
78 | 달력 생성 쿼리 | 박상현 | 2006.06.13 | 3345 |
77 | 다중 Row 결과를 단일행으로 컴마로 분리해 출력하는 방법 (2) | 박상현 | 2006.06.13 | 3968 |
» | 다중 Row 결과를 단일행으로 컴마로 분리해 출력하는 방법 (1) | 박상현 | 2006.06.13 | 3697 |
75 | 문자열 행으로 분리하기 | 박상현 | 2006.06.13 | 3827 |