테이블을 unpivot 할 수는 있지만 null 값은 결과에 포함되지 않습니다.UNPIVOT에서 NULL 값을 처리하십시오.
create table pivot_task
(
age int null,
[a] numeric(8,2),
[b] numeric(8,2),
[c] numeric(8,2),
[d] numeric(8,2),
[e] numeric(8,2)
);
select * from pivot_task;
insert into pivot_task values (18, 0.5, null, 0.6, 1.21, 1.52),
(19, 7.51, 6.51, 5.51, null, 3.53),
(20, 4.52, 4.52, 6.52, 3.53, null);
select age, [over], [av]
from pivot_task
unpivot
(
[av]
for [over] in ([a], [b], [c], [d], [e])
) a;
당신은 18 세 [이상] B와 null 값은 내가 모든 널 상대를 위해서뿐만 아니라 널 (null)을 포함 할 행방 불명에 대한 http://sqlfiddle.com/#!6/2ab59/1에 결과를 볼 수 있습니다.
다른 값으로 null을 대체 한 다음 이러한 모든 상수 값 접근 방식을 바꾸는 것이 내 작업에 적합하지 않습니다. 피벗에만 포함시키고 싶습니다.
'18 세 이상'? 여기에는 특히 그래픽 또는 폭력적인 SQL이 포함되어 있습니까? – Paul
@Westie pivot_task 테이블에서 널값을 다른 값으로 바꾸고 unpivot으로 바꾸지 만 소스 테이블 pivot_task를 수정할 수 없습니까? –
숫자가 지정된 범위에 속하면 (음수가 아님)이 문제를 해결할 수 있습니다. 올바른 형식의 질문은 +1. –