我有一个简单的SQL select查询,它返回以下结果(单行):
[0] [1] [2] [3] [13] (column headings)
5102 4516 31 95 2 (row data)
使用SQL,我需要将其转换为返回两列(5行),如下所示:
[id] [val]
0 5102
1 4516
2 31
3 95
13 2
我希望能够使用枢轴或类似的东西来做到这一点。
用于生成第一个(单行)结果的SQL查询:
SELECT * FROM TABLE WHERE KEY = BLAH
答案 0 :(得分:1)
您需要unpivot
数据
SQL Server
使用Cross Apply
。试试这个
SELECT id,val
FROM yourtable
CROSS apply (VALUES ([0],'0'),
([1],'1'),
([2],'2'),
([3],'3'),
([13],'13')) cs (val,id)
或使用Union ALL
取消数据
SELECT [0] AS val,'0' AS id
FROM yourtable
UNION ALL
SELECT [1],'1'
FROM yourtable
UNION ALL
SELECT [2],'2'
FROM yourtable
UNION ALL
SELECT [3],'3'
FROM yourtable
UNION ALL
SELECT [13],'13'
FROM yourtable