gpt4 book ai didi

sql - 使用 SQL UNPIVOT 使用多列使一行垂直

转载 作者:行者123 更新时间:2023-12-01 16:36:22 26 4
gpt4 key购买 nike

我有一行数据想要垂直化。我相信 UNPIVOT 是我的最佳选择,但我一直无法让它发挥作用。我的行有以下数据:

id | Qualifier 1  | Qualifier 2  | Qualifier 3 | Value 1 | Value 2 | Value 3
------------------------------------------------------------------------------
1 CP HP TE 0000000000 1111111111 2222222222

我希望将所有限定符及其相关值排成一行。例如,Qualifer 1 将始终与值 1 相关联。它永远不会与值 2 相关联。我希望得到如下所示的结果:

 id | Qualifier | Value
-----------------------
1 CP 0000000000
1 HP 1111111111
1 TE 2222222222

我对我的代码进行了多次迭代,但到目前为止,我能想到的最好的代码如下。任何指导将不胜感激。

SELECT ID, NUMBERS, 
FROM TABLE1
UNPIVOT
(
numbers for nums in (Value1,Value2,Value3)
) unPiv

最佳答案

我会使用交叉应用:

select t.id, v.Qualifier, v.Value
from t cross apply
(values (t.Qualifier1, t.Value1),
(t.Qualifier2, t.Value2),
(t.Qualifier3, t.Value3)
) v(Qualifier, Value);

关于sql - 使用 SQL UNPIVOT 使用多列使一行垂直,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56155701/

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