Sql SSMS-旋转列并更改字段名称
假设我有下表,表1Sql 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
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]
给了我实际的措辞,而不是我需要的数字。谢谢!!