我想从看起来像这样的SQL查询中打开记录...
FirstName Amount PostalCode LastName AccountNumber
John 2.4 ZH1E4A Fork 857685
到看起来像这样的键值对...
Key Value
FirstName John
Amount 2.4
PostalCode ZH1E4A
LastName Fork
AccountNumber 857685
我想在SQL中完成所有操作。我已经看过枢轴示例,但是我不确定它是否适用于此示例。我知道我可以使用临时表,并集,但是我希望有一个更优雅的解决方案。有人有建议吗?
谢谢保罗
尝试这个:
DECLARE @t table(FirstName varchar(10), Amount money, PostalCode varchar(10),
LastName varchar(10), AccountNumber int)
INSERT @t values('John', 2.4, 'ZH1E4A', 'Fork', 857685)
;WITH CTE AS
(
SELECT
[FirstName],
cast([Amount] as varchar(10)) [Amount],
[PostalCode],
[LastName],
cast([AccountNumber] as varchar(10)) [AccountNumber]
FROM @t
)
SELECT [Key],Value
FROM CTE
UNPIVOT
(Value FOR [Key] IN
([FirstName], [Amount], [PostalCode], [LastName], [AccountNumber]) ) AS unpvt
结果:
Key Value
FirstName John
Amount 2.40
PostalCode ZH1E4A
LastName Fork
AccountNumber 857685
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句