我们是SQL Server 2008上,我试图找出是否有办法有一个存储过程返回1 CSV场我的结果
例如:
SELECT TOP 4 carModels
FROM dbo.Models
将返回
Jeep
Honda
Mitsubishi
Ford
我想这回在1场像这样:吉普,本田,三菱,福特
我知道我们可以做到这一点与程序集,临时表,或服务器端的代码,但不希望走这条路。 是否有任何提示/技巧你可以建议让我在寻找的结果?
我们是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)
下面可能会奏效。 我没有今天的SQLServer验证。
DECLARE @Str VARCHAR(8000)
SET @Str = SPACE(0)
SELECT @Str = @Str + ',' + SUBSTRING(@Str + Models.Name, 1, 10)
FROM dbo.Models
PRINT @Str
这是东西,你可以在客户端上做什么? 如果我有选择我会从数据层,当我需要它可能删除它,然后把它在客户端上,其格式为CSV。