我们在 SQL Server 2008 上,我想知道是否有办法让存储过程在 1 个 CSV 字段中返回我的结果
例如:
SELECT TOP 4 carModels
FROM dbo.Models
会回来
Jeep
Honda
Mitsubishi
Ford
我希望这在 1 个字段中返回,如下所示:
吉普、本田、三菱、福特
我知道我们可以使用程序集、临时表或服务器端代码来做到这一点,但不想走那条路。是否有任何提示/技巧可以建议您获得我正在寻找的结果?
最佳答案
尝试这个:
DECLARE @x varchar(8000)
SELECT TOP 4
@x=ISNULL(@x+', ','')+carModels
FROM dbo.Models
SELECT @x AS carModels
编辑 与上面相同的答案,但这里有完整的代码来测试它......
declare @Models table (RowID int not null primary key identity(1,1), carModels varchar(20))
insert into @Models values ('Jeep')
insert into @Models values ('Honda')
insert into @Models values ('Mitsubishi')
insert into @Models values ('Ford')
insert into @Models values ('Mazda')
DECLARE @x varchar(8000)
SET @x=null
SELECT TOP 4
@x=ISNULL(@x+', ','')+carModels
FROM @Models
SELECT @x AS carModels
输出:
carModels
----------------------------------
Jeep, Honda, Mitsubishi, Ford
(1 row(s) affected)
关于SQL Server 2008 行到 1 个 CSV 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131907/