成爲行的值我有以下信息表:更改列的名稱後,他們在UNPIVOT查詢SQLSERVER2008
CREATE TABLE [dbo].[ApprovedPalmsInFarm](
[id] [int] IDENTITY(1,1) NOT NULL,
[FarmID] [nvarchar](10) NOT NULL,
[kalas] [int] NULL,
[khnizi] [int] NULL
選擇查詢的默認結果是:
id FarmID kalas khnizi
4 12100462 5 0
5 11520344 3 0
6 12104277 150 15
我想要使用Unpivot查詢生成報告,其中的列成爲行值
我的報告查詢是跟隨NG:
SELECT FarmID, PalmsName, Quantity
FROM [ApprovedPalmsInFarm]
unpivot
(
Quantity
FOR PalmsName in ([kalas] , [khnizi])
) u;
我的逆透視查詢的結果如下:
FarmID PalmsName Quantity
12100462 kalas 5
12100462 khnizi 0
11520344 kalas 3
11520344 khnizi 0
12104277 kalas 150
12104277 khnizi 15
現在的問題是,如何改變PalmsName的值的名字,而他們不理解,他們是列的名稱,所以我想更改名稱爲例如阿拉伯語如下:
خلاص而不是kalas
خنيزي代替khnizi
是有可能改變的列的名稱後,便成了行值?
你想在你的UNPIVOT查詢更改值的名稱?如果是這樣,那麼可以通過將該查詢存儲在臨時表中然後更改「PalmsName」中的名稱值來輕鬆完成此操作。但我猜你想在同一個查詢中完成它? –
是在同一個查詢中,有可能嗎? – amal50
是的,你可以使用CASE語句('CASE PalmsName WHEN'kalas'THEN'خلاص'... END AS'PalmsName''等)。它會有點笨重,但它會起作用。 – Jim