作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将列拆分为行(如矩阵?)的最佳方法是什么?示例表:
Name Hours1 Hours2 Hours3
Jon 32 40 30
Ana 40 0 40
结果(不显示 0 值):
Name Hours
Jon 32
Jon 40
Jon 30
Ana 40
Ana 40
我能想到的一种方法是使用 Union
SELECT
Name,
Hours1
FROM #HOURSTABLE
WHERE Hours1 <> 0
UNION ALL
SELECT
Name,
Hours2
FROM #HOURSTABLE
WHERE Hours2 <> 0
UNION ALL
SELECT
Name,
Hours3
FROM #HOURSTABLE
WHERE Hours3 <> 0
还有什么建议吗?
最佳答案
对于此类项目,我更喜欢 CROSS APPLY。它提供了更多的灵 active 。
示例
Select Name
,B.*
From YourTable A
Cross Apply ( values (Hours1)
,(Hours2)
,(Hours3)
) B(Hours)
Where B.Hours<>0
返回
Name Hours
Jon 32
Jon 40
Jon 30
Ana 40
Ana 40
关于sql - 将列拆分为行的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48104231/
我是一名优秀的程序员,十分优秀!