如何将查询返回的列中的所有记录连接到T-SQL中的一个varchar字符串?

时间:2010-05-10 06:54:42

标签: sql tsql

查询(SELECT / FUNCTION / VIEW / PROCEDURE)返回一列varchar记录。我需要将它们连接成一个单一的varchar行。我如何在T-SQL中做到最好?

4 个答案:

答案 0 :(得分:6)

declare @s varchar(8000)
select @s = coalesce(@s + ', ' + col, col) from tbl

答案 1 :(得分:4)

DECLARE @Concat varchar(MAX)

SELECT @Concat = ''

SELECT @Concat = @ConCat + IsNull(Field1, '')
FROM Table1

SELECT @Concat

这将返回单个值,该值是每个Field1值的串联。 IsNull部分将意味着NULL值不会搞砸。当然,如果您没有使用SQL Server 2005或更高版本,则无法使用varchar(MAX),并且连接的记录数将更快成为问题。

答案 2 :(得分:2)

答案 3 :(得分:0)

添加逗号分隔符...

DECLARE @Concat VARCHAR(MAX)

SET @Concat = ''

SELECT  @Concat = @Concat + LEFT(',', LEN(@Concat)) + ISNULL(Field, '') FROM    dbo.Table

SELECT  @Concat