질문드립니다. 0 3 1,478

by 지에나르 [SQL Query] [2016.04.01 16:52:56]


SELECT A,B,C,D FROM 테이블
 

아래 표와같은 결과가 있다고 했을때

A B C D
1 2 3 4
1 2 3 5
1 2 3 6

 

아래와같이 결과를 뽑아내고싶습니다.  즉 D의 값만 다른값이 있을경우 그걸 아래처럼 묶어서 한개의 결과만 나오도록 하고싶은데 어떻게 쿼리를 바꿔야할까요?

A B C D
1 2 3 4/5/6

 

by swlee [2016.04.01 17:01:34]
-- a, b, c 컬럼 중에서도 다른 값이 있다면 d컬럼처럼 나와야하는건가요?

--일단은
 
with t (A,B,C,D) as (
select 1,2,3,4 from dual union all
select 1,2,3,5 from dual union all 
select 1,2,3,6 from dual)
select a,b,c
     , Listagg(d, '/') Within Group (Order By rownum) d
from t
group by a,b,c
;

 


by 지에나르 [2016.04.01 17:56:47]

찾아보니 WM_CONCAT 라는 함수도 있던데

비슷한 기능인거같지만 더 유연하게 사용이 가능하겠네요!

정말 감사드립니다!


by swlee [2016.04.01 18:01:06]
-- 참고 하세요

http://www.gurubee.net/article/55512

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입