将sql值连接到变量

chr*_*ris 7 sql sql-server sql-server-2008

在SQL Server 2008上,我试图将所有选定值的逗号分隔列表添加到变量中.

SELECT field
FROM table
Run Code Online (Sandbox Code Playgroud)

收益:

+-------+
| field |
+-------+
| foo   |
+-------+
| bar   |
+-------+
Run Code Online (Sandbox Code Playgroud)

我想得到:"foo,bar,"

我试过了:

DECLARE @foo NVARCHAR(MAX)
SET @foo = ''

SELECT @foo = @foo + field + ','
FROM TABLE

PRINT @foo
Run Code Online (Sandbox Code Playgroud)

什么都不返回.我究竟做错了什么?

gbn*_*gbn 10

您需要更改NULL

SELECT @foo = @foo + ISNULL(field + ',', '')
FROM TABLE
Run Code Online (Sandbox Code Playgroud)

或删除它们

SELECT @foo = @foo + field + ','
FROM TABLE
WHERE field IS NOT NULL
Run Code Online (Sandbox Code Playgroud)