Sql SSMS-旋转列并更改字段名称

Sql SSMS-旋转列并更改字段名称,sql,tsql,ssms,Sql,Tsql,Ssms,假设我有下表,表1 SIMULATION STATEMENT_LINE PERIOD OUTPUT_YTDIncStmt 0 A_1_a_Gross_Written_Premium 2012Q2 1362419134 0 A_Net_Earned_Premium 2012Q2 0 0 A_1_Gross_Earned_Premium 2012Q2 1

假设我有下表,表1

SIMULATION  STATEMENT_LINE                  PERIOD  OUTPUT_YTDIncStmt
0           A_1_a_Gross_Written_Premium     2012Q2  1362419134
0           A_Net_Earned_Premium            2012Q2  0
0           A_1_Gross_Earned_Premium        2012Q2  1362419134
有没有什么方法可以使语句行列旋转,这样我就可以使它看起来像这样,而不是所有的语句行列都是A\u 1之类的

PERIOD    [Gross Written Premium]    [Net Earned Premium]    [Gross Earned Premium]
2012Q2          1362419134                    0                     1362419134   
我想亲自指定这些列的名称,而不仅仅是去掉“u”和“A”或“1”


这样做的好方法是什么?

你可以这样做

SELECT [Period],
    [A_1_a_Gross_Written_Premium] AS [Gross Written Premium],
    [A_Net_Earned_Premium] AS [Net Earned Premium],
    [A_1_Gross_Earned_Premium] AS [Gross Earned Premium]
FROM
  (
   SELECT [STATEMENT_LINE], [PERIOD], [OUTPUT_YTDIncStmt]
   FROM Table1
   ) AS Source

PIVOT
  (
   MAX(OUTPUT_YTDIncStmt)
   FOR STATEMENT_LINE IN ([A_1_a_Gross_Written_Premium], [A_Net_Earned_Premium], [A_1_Gross_Earned_Premium])
  ) AS PivotTable

你可以这样做

SELECT [Period],
    [A_1_a_Gross_Written_Premium] AS [Gross Written Premium],
    [A_Net_Earned_Premium] AS [Net Earned Premium],
    [A_1_Gross_Earned_Premium] AS [Gross Earned Premium]
FROM
  (
   SELECT [STATEMENT_LINE], [PERIOD], [OUTPUT_YTDIncStmt]
   FROM Table1
   ) AS Source

PIVOT
  (
   MAX(OUTPUT_YTDIncStmt)
   FOR STATEMENT_LINE IN ([A_1_a_Gross_Written_Premium], [A_Net_Earned_Premium], [A_1_Gross_Earned_Premium])
  ) AS PivotTable

您是否有未知数量的
语句行
值,还是只有3个?我有很多,但我只需要选择大约6个。如果我想要全部,我肯定会使用动态SQL。您是否有未知数量的
语句行
值,还是只有3个?我有很多,但我只需要选择大约6个。如果我想要全部,我肯定会使用动态SQL。我太笨了……我做了同样的事情,只是我把
'A_1\u A_Gross_writed_Premium'作为[Gross writed Premium]
这给了我实际的措辞,而不是我需要的数字。哈哈,谢谢!!我太傻了…我做了同样的事情,只是我把
'A\u 1\u A\u Gross\u writed\u Premium'作为[Gross writed Premium]
给了我实际的措辞,而不是我需要的数字。谢谢!!