成为行的值我有以下信息表:更改列的名称后,他们在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