반응형

IT/DB 19

[MSSQL] 다중 칼럼 PIVOT, 동적 PIVOT, 동적 UNPIVOT

PIVOT 연산자는 행으로 나열되어 있는 데이터를 열로 가공하는 것이다. 요구 사항 상, 한줄 컬럼 PIVOT이 아닌 다중컬럼, 또 행 데이터가 RANK 연산자로 인해 가변값들이었기 때문에 동적 UNPIVOT을 사용해야했다. DECLARE @QUERY VARCHAR(MAX); DECLARE @STRCOLUMNVARCHAR(MAX); DECALRE @KEYCOLUMN VARCHAR(MAX); -- 생략하였지만 위에서 이미 만들어준 #SERVICEACCEPT라는 테이블이 있다. /* RANK 연산자에 의해서 #SERVICEACCEPT ROW 데이터들이 변하기 때문에 이 값들을 @STRCOLUMN에 [],[],[], 형태로 담아준다. */ SET@STRCOLUMN = STUFF((SELECT '],[' + S..

IT/DB 2022.05.04

[MSSQL] CASE 문 CASE WHEN THEN

기본 문법 CASE 컬럼명 WHEN 조건A THEN 값A WHEN 조건B THEN 값B ELSE 값C 활용방법 SELECT REPORTID , CASE WHEN ISNULL(FAILUREREASON,'') = '' THEN FAILURECAUSE ELSE FAILUREREASON ENDAS FAILUREREASON , CASE WHEN ISNULL(SYSOCURRDESC,'') = '' THEN USEROCURRDESC ELSE SYSOCURRDESC ENDAS FAILUREDESC FROM FAILUREREPORT WITH(NOLOCK) FAILUREREPORT 테이블에서 FAILUREREASON이 ''이거나 NULL 일경우 FAILURECAUSE를 뽑아주라. 값이 있다면 그대로 FAILUREREASO..

IT/DB 2022.04.22
반응형