【问题标题】:Convert columns to rows in SQL Server在 SQL Server 中将列转换为行
【发布时间】:2015-02-13 13:37:37
【问题描述】:

我有一个 sql server 数据库表,其中包含这样的数据。

No  Age Qty Remove
01  2   350 20
02  1   255 5

但我想要这样的输出

          01    02
Age        2    1
Qty      350    255
Remove    20    5

任何帮助将不胜感激。

【问题讨论】:

  • 看看PIVOT。至少在问之前试一试!!

标签: sql-server pivot


【解决方案1】:

使用 unpivot 和 pivot 。我希望你能用这个:

DECLARE @t table(No char(2), Age int, Qty int, [Remove] int)
INSERT @t values('01',  2,   350, 20),('02',  1,   255, 5)

SELECT Cols, [01], [02]
FROM  
(
  SELECT Cols, No, val
  FROM @t as p  
  UNPIVOT      
  (val FOR Cols IN           
  ([Age],[Qty],[Remove] )) AS unpvt  
) p
PIVOT (max(val) FOR [No] IN ([01], [02])) AS pvt 

结果:

Cols   01   02
Age    2    1
Qty    350  255
Remove 20   5

【讨论】:

  • 感谢您的建议。动态创建查询对我很有帮助。
  • @ChularansiFernando 如果我的回答解决了您的问题,请接受它
猜你喜欢
  • 2013-10-01
  • 2021-02-24
  • 2010-10-22
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多