두개의 row를 합치는 방법이 있을까요? 0 2 1,971

by lover [SQL Query] [2014.10.27 16:53:47]


3개의 컬럼을 결과를 출력하는 아래의 쿼리에서

SELECT a컬럼, b컬럼, c컬럼

FROM table1

<결과>

a1, b1, c1

a2,b2,c2

 

이렇게 나오는 것을

<결과>

a1,b1,c1,a2,b2,c2

 

형태로 나오게 하려고 합니다.

 

결과가 출력되는 row의 갯수는 정해져 있지 않구요..

 

cross tab 형태말고 rowid 를 기준으로 첫번째 두번째 것을 합치고, 세번째 네번째 것을 합치고

하는 방법이 있을까요?

 

 

by 홍원표 [2014.10.27 17:37:31]
WITH TB_SAMPLE AS (
SELECT 'A1' A, 'B1' B, 'C1' C FROM DUAL UNION ALL
SELECT 'A2' A, 'B2' B, 'C2' C FROM DUAL UNION ALL
SELECT 'A3' A, 'B3' B, 'C3' C FROM DUAL UNION ALL
SELECT 'A4' A, 'B4' B, 'C4' C FROM DUAL UNION ALL
SELECT 'A5' A, 'B5' B, 'C5' C FROM DUAL UNION ALL
SELECT 'A6' A, 'B6' B, 'C6' C FROM DUAL
)
SELECT    MAX(DECODE(MOD(ROWNUM,2),1,A)) A,
          MAX(DECODE(MOD(ROWNUM,2),1,B)) B,
          MAX(DECODE(MOD(ROWNUM,2),1,C)) C,
          MAX(DECODE(MOD(ROWNUM,2),0,A)) D,
          MAX(DECODE(MOD(ROWNUM,2),0,B)) E,
          MAX(DECODE(MOD(ROWNUM,2),0,C)) F
FROM TB_SAMPLE
GROUP BY ROWNUM+MOD(ROWNUM,2)
ORDER BY 1

 


by 장진규 [2014.10.29 11:23:52]

1번안.

select wm_concat(컬럼1||컬럼2||컬럼3)

from 테이블1

 

2번안.

select listagg(컬럼1||컬럼2||컬럼3,',') within group(order by 컬럼1||컬럼2||컬럼3) as col1
from  테이블1

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