将SQL值连接到变量中。
将SQL值连接到变量中。
在SQL Server 2008上,我试图将所有选择的值的逗号分隔列表赋给一个变量。
SELECT field FROM table
返回:
+-------+ | field | +-------+ | foo | +-------+ | bar | +-------+
我想得到:
\"foo,bar,\"
我尝试了:
DECLARE @foo NVARCHAR(MAX) SET @foo = '' SELECT @foo = @foo + field + ',' FROM TABLE PRINT @foo
它什么都没有返回。我做错了什么?
admin 更改状态以发布 2023年5月22日
如果表中有任何一个字段为空,那么就会发生这种情况。在SQL Server中,NULL +
。要么省略它们,
SELECT @foo = @foo + field + ',' FROM TABLE WHERE field is not null
要么绕过它们,
SELECT @foo = @foo + isnull(field + ',', '') FROM TABLE
你可以写整个查询语句,省略常见的SET语句。下面的查询返回“foo,bar”,没有尾随逗号。
DECLARE @foo NVARCHAR(MAX) SELECT @foo = isnull(@foo + ',', '') + field FROM TABLE WHERE field is not null PRINT @foo