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