결과값이 중복되면 첫줄만 보여주고 나머지는 공백처리? 0 1 1,283

by 가나다아아 [SQL Query] 오라클 쿼리 공백처리 중복 [2018.07.20 16:20:28]


예를들어 쿼리 결과값이

a  b  c  d  e  ~  ~   ~   ~   ~   ~   ~

a  b  c  d  e  ~  ~   ~   ~   ~   ~   ~

a  b  c  d  e  ~  ~   ~   ~   ~   ~   ~

뒤에 물결은 다를수도 같을수도 있다고 치면

a  b  c  d  e  ~  ~   ~   ~   ~   ~   ~

                  ~  ~   ~   ~   ~   ~   ~

                  ~  ~   ~   ~   ~   ~   ~

 

이렇게할수있는 방법이 뭐가 있을까요??..

by 우리집아찌 [2018.07.20 16:32:19]
WITH T ( A , B, C, D, E , F  )  AS (
SELECT 'A' , 'B' ,'C' ,'D' ,'E' ,'G' FROM DUAL UNION ALL
SELECT 'A' , 'B' ,'C' ,'D' ,'B' ,'F' FROM DUAL UNION ALL
SELECT 'A' , 'B' ,'C' ,'D' ,'G' ,'G' FROM DUAL UNION ALL
SELECT 'A' , 'B' ,'C' ,'D' ,'A' ,'Z' FROM DUAL UNION ALL
SELECT 'B' , 'C' ,'D' ,'E' ,'B' ,'E' FROM DUAL UNION ALL
SELECT 'B' , 'C' ,'D' ,'E' ,'Z' ,'G' FROM DUAL UNION ALL
SELECT 'B' , 'C' ,'D' ,'E' ,'E' ,'D' FROM DUAL 
)
SELECT CASE WHEN RN = 1 THEN A END A 
     , CASE WHEN RN = 1 THEN B END B
     , CASE WHEN RN = 1 THEN C END C
     , CASE WHEN RN = 1 THEN D END D
     , E 
     , F
  FROM (SELECT T.*
             , ROW_NUMBER() OVER(PARTITION BY A,B,C,D ORDER BY ROWNUM ) RN 
          FROM T
        )  

 

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