중복 값 빈값으로 변경 방법이 있을까요? 0 2 623

by DY_A [SQL Query] [2020.09.08 11:43:16]


캡처.GIF (2,134Bytes)

value(사과, 20000) , 

value(사과, 43200) ,

value(배, 30000) ,

value(배, 20000) 

예를들어 데이터가 이런식으로 있다고 가정했을 때

아래 표처럼 중복값은 빈값으로 출력하려면 어떻게 해야할까요?

MSSQL 2017버전입니다.

by 마농 [2020.09.08 16:29:12]
WITH t AS
(
SELECT 1 idx, '사과' nm, 20000 amt
UNION ALL SELECT 2, '사과', 43200
UNION ALL SELECT 3, '배'  , 30000
UNION ALL SELECT 4, '배'  , 20000
)
SELECT idx
     , nm
     , amt
     , CASE  ROW_NUMBER() OVER(PARTITION BY nm ORDER BY idx) WHEN 1 THEN nm END nm_1
     , CASE WHEN  LAG(nm) OVER(PARTITION BY nm ORDER BY idx) = nm THEN NULL ELSE nm END nm_2
     , NULLIF(nm, LAG(nm) OVER(PARTITION BY nm ORDER BY idx)) nm_3
  FROM t
;

 


by DY_A [2020.09.10 09:21:02]

감사합니다. 시도 후 추가 질문드리겠습니다.

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