gpt4 book ai didi

sql - 将列拆分为行的最佳方法?

转载 作者:行者123 更新时间:2023-12-05 01:21:46 24 4
gpt4 key购买 nike

将列拆分为行(如矩阵?)的最佳方法是什么?示例表:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com