SQL Server 2008 行到 1 个 CSV 字段

标签 sql sql-server-2008 csv concatenation

我们在 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/

相关文章:

mysql - mysql 查询的基数违规

SQL 动态 ORDER BY 使用别名

sql-server - SQL Server sp_msforeachtable 用法仅选择满足某些条件的表

sql-server - 恢复 Sql Server 数据库后启用代理

MySQL LOAD DATA LOCAL INFILE 不允许通过 ODBC

python - Django:使用查询集/过滤创建类别

java - SQL/SQLite,需要查询来检查列中的所有字符串

mysql - sql distinct,得到2列

database - 如何在 SQL Server 2008 中优化存储以下 SQL 数据

php - LOAD DATA INFILE - 显示导入的行数给出错误的值