在 unpivot 查询 SQLSERVER2008 中成为行值后更改列的名称
Change the name of columns after they became rows values in unpivot query SQLSERVER2008
我 table 有以下信息:
CREATE TABLE [dbo].[ApprovedPalmsInFarm](
[id] [int] IDENTITY(1,1) NOT NULL,
[FarmID] [nvarchar](10) NOT NULL,
[kalas] [int] NULL,
[khnizi] [int] NULL
select查询的默认结果为:
id FarmID kalas khnizi
4 12100462 5 0
5 11520344 3 0
6 12104277 150 15
我想使用列变为行值的 Unpivot 查询生成报告
我的报表查询如下:
SELECT FarmID, PalmsName, Quantity
FROM [ApprovedPalmsInFarm]
unpivot
(
Quantity
FOR PalmsName in ([kalas] , [khnizi] )
) u;
我的 Unpivot 查询结果如下:
FarmID PalmsName Quantity
12100462 kalas 5
12100462 khnizi 0
11520344 kalas 3
11520344 khnizi 0
12104277 kalas 150
12104277 khnizi 15
现在我的问题是,如何更改 PalmsName 的值的名称,虽然它们不可理解并且它们是列的名称,所以我想将名称更改为阿拉伯语,如下所示:
خلاص 而不是卡拉斯
خنيòي 而不是 khnizi
是否可以在列成为行值后更改它们的名称?
我发表了评论,但我会把答案放在这里以便格式更好:
SELECT
FarmID,
CASE PalmsName
WHEN 'kalas' THEN 'خلاص'
WHEN 'khnizi' THEN 'خنيزي'
ELSE PalmsName END AS 'PalmsName',
Quantity
FROM [ApprovedPalmsInFarm]
unpivot
(
Quantity
FOR PalmsName in ([kalas] , [khnizi] )
) u;
我 table 有以下信息:
CREATE TABLE [dbo].[ApprovedPalmsInFarm](
[id] [int] IDENTITY(1,1) NOT NULL,
[FarmID] [nvarchar](10) NOT NULL,
[kalas] [int] NULL,
[khnizi] [int] NULL
select查询的默认结果为:
id FarmID kalas khnizi
4 12100462 5 0
5 11520344 3 0
6 12104277 150 15
我想使用列变为行值的 Unpivot 查询生成报告
我的报表查询如下:
SELECT FarmID, PalmsName, Quantity
FROM [ApprovedPalmsInFarm]
unpivot
(
Quantity
FOR PalmsName in ([kalas] , [khnizi] )
) u;
我的 Unpivot 查询结果如下:
FarmID PalmsName Quantity
12100462 kalas 5
12100462 khnizi 0
11520344 kalas 3
11520344 khnizi 0
12104277 kalas 150
12104277 khnizi 15
现在我的问题是,如何更改 PalmsName 的值的名称,虽然它们不可理解并且它们是列的名称,所以我想将名称更改为阿拉伯语,如下所示:
خلاص 而不是卡拉斯
خنيòي 而不是 khnizi
是否可以在列成为行值后更改它们的名称?
我发表了评论,但我会把答案放在这里以便格式更好:
SELECT
FarmID,
CASE PalmsName
WHEN 'kalas' THEN 'خلاص'
WHEN 'khnizi' THEN 'خنيزي'
ELSE PalmsName END AS 'PalmsName',
Quantity
FROM [ApprovedPalmsInFarm]
unpivot
(
Quantity
FOR PalmsName in ([kalas] , [khnizi] )
) u;