我在存储过程中有一个SELECT
,它将数据输出为这种格式。
A B C
rowkey 1 2 3
我需要把它变成这样的东西:
key value
rowkey A 1
rowkey B 2
rowkey C 3
我应该如何将其转化为此?
我不允许触及SELECT
语句,所以我应该找到一种方法来改变它,或者创建一个临时表。
答案 0 :(得分:1)
如果您使用的是SQL 2005或更高版本,这应该可以帮助您...
您可以将内部SELECT的结果存储到表变量中,然后使用以下内容对其进行转换:
DECLARE @test TABLE (rowkey int identity, A int, B int, C int)
INSERT INTO @test (A, B, C)
VALUES (1, 2, 3)
SELECT rowkey, [Key], [Value]
FROM
(SELECT rowkey, A, B, C
FROM @test) t
UNPIVOT
( [Value] FOR [Key] IN
(A, B, C)
) AS u