我遇到了涉及将水平行转换为垂直行的 SQL 查询 (SQL Server)
以下是我的数据
No Flag_1 Flag_2 Flag_3
--- ---- ----- -----
A 1 2 3
B 4 1 6
转换后,该表应为
No FlagsName Flag_value
-- ---- ----------
A Flag_1 1
A Flag_2 2
A Flag_3 3
B Flag_1 4
B Flag_2 1
B Flag_3 6
对此有任何意见会有帮助吗?
我正在尝试玩玩ROW_NUMBER
超过分区。但不知何故它不起作用!
谢谢 !!!
您可以使用UNION ALL
:
select No, 'Flag_1' as FlagName, Flag_1 as Flag_Value
from yourtable
union all
select No, 'Flag_2' as FlagName, Flag_2 as Flag_Value
from yourtable
union all
select No, 'Flag_3' as FlagName, Flag_3 as Flag_Value
from yourtable
Or an UNPIVOT
:
select no, FlagsName, flag_value
from yourtable
unpivot
(
flag_value
for FlagsName in (Flag_1, Flag_2, Flag_3)
) u
See SQL 摆弄演示 http://sqlfiddle.com/#!3/7922d/3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)