여러 레코드를 한 레코드로 합치는 방법을 알고 싶습니다 0 3 1,261

by 겨울눈 [2013.11.26 11:48:21]


항상 답변 감사드립니다



      
 
SELECT '1' AS COL1
 ,NULL AS COL2
 ,NULL AS COL3
 FROM DUAL
 UNION ALL
 SELECT NULL AS COL1
 ,'2' AS COL2
 ,NULL AS COL3
 FROM DUAL
 UNION ALL
 SELECT NULL AS COL1
 ,NULL AS COL2
 ,'3' AS COL3
 FROM DUAL


이런 쿼리문을

이런식으로 한행에 다 표시 하고 싶습니다

COL1 COL2 COL3
  1         2      3

어떻게 하면 좋을까요?


by Oracler [2013.11.26 11:53:46]
SUM, MAX, MIN 같은 그룹함수를 사용하면 됩니다. 그룹함수는 기본적으로 NULL을 무시하고 처리하거든요.
WITH t AS (
 SELECT '1' AS COL1, NULL AS COL2, NULL AS COL3 FROM DUAL
 UNION ALL SELECT NULL AS COL1,'2' AS COL2,NULL AS COL3 FROM DUAL
 UNION ALL SELECT NULL AS COL1,NULL AS COL2,'3' AS COL3 FROM DUAL)
SELECT SUM(col1) AS col1, SUM(col2) AS col2, SUM(col3) AS col3
FROM t
;
그럼 도움이 되셨길...

by 우리집아찌 [2013.11.26 11:54:10]
 
WITH T AS 
(SELECT '1' AS COL1 
 ,NULL AS COL2 
 ,NULL AS COL3 
 FROM DUAL 
 UNION ALL
 SELECT NULL AS COL1 
 ,'2' AS COL2 
 ,NULL AS COL3 
 FROM DUAL 
 UNION ALL
 SELECT NULL AS COL1 
 ,NULL AS COL2 
 ,'3' AS COL3 
 FROM DUAL 
 )

SELECT MAX(DECODE(ROWNUM,1,COL1)) COL1,
    MAX(DECODE(ROWNUM,2,COL2)) COL2,
    MAX(DECODE(ROWNUM,3,COL3)) C0L3
 FROM T

by 겨울눈 [2013.11.26 12:00:20]
아 그렇군요 감사합니다
답변채택은 한분밖에 안되네요.. 
그럼 좋은 하루되세요
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입