我有这个表(为了清楚起见,列和记录被截断):
StartHour WorkstationName
--------- ---------------
4 Wigets1
19 Wigets2
我希望得到一个1记录的结果,只有StartHour
这两行的值,所以我的结果将是
Wigets1 Wigets2
--------- ---------
4 19
我现在有这个问题:
SELECT Wigets1, Wigets2
FROM (SELECT * FROM InspectorApp
WHERE WorkstationName IN ('Wigets1', 'Wigets2')) innerselect
PIVOT(MAX(StartHour) FOR WorkstationName IN ([Wigets1], [Wigets2])) pvt
但是我得到了
的结果EarlyPipe LgLnStart
--------- ---------
NULL 19
4 NULL
如何在这里摆脱NULL
?
答案 0 :(得分:2)
pivot
很挑剔。只需在子查询中选择所需的列:
SELECT Wigets1, Wigets2
FROM (SELECT WorkstationName, StartHour
FROM InspectorApp
WHERE WorkstationName IN ('Wigets1', 'Wigets2')
) innerselect
PIVOT(MAX(StartHour) FOR WorkstationName IN ([Wigets1], [Wigets2])) pvt;
PS。我更喜欢使用条件聚合进行旋转的另一个原因。