TSQL,

2016-10-13 3 views
0

Snapshot of my data and what I wantTSQL,

내 데이터는 다음과 같이 (I 데이터를 보여주기 위해 사진을 첨부하고 나도 원하는)

LoanNb FullNm Rule1 Rule2 Rule3 Rule4 … Rule40 
100 A Fatal null null Warning  null  
200 A null null Fatal null  null  
300 B null Warning null null  null  
400 C null null null null  null  

내가이

처럼 원하는이다
LoanNb FullNm Rule Name Outcome     
100 A Rule1  Critical      
100 A Rule4  Warning     
200 A Rule3  Critical      
300 B Rule2  Warning     

나는 포럼에서 수색했는데, 나는 unpivot을해야한다고 생각한다. 나는 이것을 시도하고 있지만 작동하지는 않는다. 나는 SQL에 익숙하지 않다.

select * 
From Tablename 

Unpivot 
(RuleOutcome for Rulename in ('Rule1', 'Rule2', 'Rule3', 'Rule4') 
) unpiv 
+1

이 어떤 방법으로 태그를 변경해야 SQL 서버 질문 –

+1

인 경우 작동하지 않는거야? 오류 메시지가 나타 납니까? 어떤 데이터가 표시되지 않고 왜 잘못 되었습니까? –

답변

1
declare @t table(LoanNb int, FullNm varchar(1),Rule1 varchar(10),Rule2 varchar(10), Rule3 varchar(10),Rule4 varchar(10),rule5 varchar(10)) 
insert into @t values 
(100, 'A', 'Fatal', null, null, 'Warning', null), 
(200, 'A', null, null, 'Fatal', null, null), 
(300, 'B', null, 'Warning',null, null, null), 
(400, 'C', null, null ,null, null, null) 

SELECT loannb, fullnm, rules 
FROM 
    (SELECT fullnm,loannb, rule1,rule2,rule3,rule4 
    FROM @t) p 
UNPIVOT 
    (rules FOR setofrules IN (rule1,rule2,rule3,rule4) 
)AS unpvt; 

결과 loannb의 fullnm 규칙


100 A  Fatal 
    100 A  Warning 
    200 A  Fatal 
    300 B  Warning 

(4 영향을받는 행)

+0

매력처럼 작동합니다. 감사합니다. 빠른 답변 감사합니다! – samsql

+0

P.Salmon,이 대답의 시작 부분에 수정 내용을 설명하는 텍스트를 추가 하시겠습니까? OP의 해결책은 무엇을 잘못 했습니까? – halfer