Lij*_*ijo 3 sql sql-server sql-server-2005
我正在尝试使用SQL Server生成一系列字母表.
假设我有一个表格如下
DECLARE @Funding TABLE (FundingDetailID INT,FundingID INT, DetailDescription VARCHAR(50))
INSERT INTO @Funding (FundingDetailID ,FundingID , DetailDescription) VALUES (1,107,'Desc 1')
INSERT INTO @Funding (FundingDetailID ,FundingID , DetailDescription) VALUES (1,107,'Desc 2')
INSERT INTO @Funding (FundingDetailID ,FundingID , DetailDescription) VALUES (1,107,'Desc 3')
Run Code Online (Sandbox Code Playgroud)
我试图获得以下结果.
a) Desc 1
b) Desc 2
c) Desc 3
Run Code Online (Sandbox Code Playgroud)
我如何生成“a)”, “b)”,......?我不允许添加任何额外的临时表或表变量来初始存储字母表.应该生成它们.
这将在SQL Server 2005中完成.
有什么想法吗 ?
谢谢
Lijo Cheeran Joseph
使用ROW_NUMBER()如下
DECLARE @Funding TABLE (FundingDetailID INT,FundingID INT, DetailDescription VARCHAR(50))
INSERT INTO @Funding VALUES (1,107,'Desc 1')
INSERT INTO @Funding VALUES (1,107,'Desc 2')
INSERT INTO @Funding VALUES (1,107,'Desc 3')
SELECT CHAR (CAST (96+ROW_NUMBER() OVER (Order BY FundingDetailID) AS VARCHAR)) + ') ' + DetailDescription
FROM @Funding
-----------------------------------------------------
a) Desc 1
b) Desc 2
c) Desc 3
Run Code Online (Sandbox Code Playgroud)