SQL列和值到键和值

保罗·宾内尔

我想从看起来像这样的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章