首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UNPIVOT不获取空值

UNPIVOT不获取空值
EN

Stack Overflow用户
提问于 2020-06-25 11:25:12
回答 2查看 54关注 0票数 0

我有以下几点:

代码语言:javascript
复制
SELECT Custid, Shipperid, Freight
FROM Sales.FreightTotals
UNPIVOT( Freight FOR Shipperid IN([1],[2],[3]) ) AS U;

我的结果如下:

代码语言:javascript
复制
custid shipperid freight
1      1         25
1      3         100
2      2         75

获得空值后的预期输出:

代码语言:javascript
复制
custid shipperid freight
1      1         25
1      2         NULL
1      3         100
2      1         NULL
2      2         75
2      3         NULL
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-25 11:26:54

例如,使用CTE将空作为0.00,然后使用NULLIF()将0.00替换为NULLIF():

代码语言:javascript
复制
WITH C AS
(
SELECT custid,
ISNULL([1], 0.00) AS [1],
ISNULL([2], 0.00) AS [2],
ISNULL([3], 0.00) AS [3]
FROM Sales.FreightTotals
)
SELECT custid, shipperid, NULLIF(freight, 0.00) AS freight
FROM C
UNPIVOT( freight FOR shipperid IN([1],[2],[3]) ) AS U;
票数 3
EN

Stack Overflow用户

发布于 2020-06-25 11:27:14

这被认为是unpivot的一个特性。使用apply代替:

代码语言:javascript
复制
SELECT ft.custid, v.shipperid, v.freight
FROM Sales.FreightTotals ft CROSS APPLY
     (VALUES (1, ft.[1]), (2, ft.[2]), (3, ft.[3])) AS v(shipperid, freight);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62574208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档