aba*_*hev 8 sql t-sql sql-server
我有这样的查询:
SELECT name from users
Run Code Online (Sandbox Code Playgroud)
它的结果是许多记录:
1 user1
2 user2
3 user3
Run Code Online (Sandbox Code Playgroud)
我希望将所有这些记录放在一行中用逗号分隔:
user1, user2, user3
Run Code Online (Sandbox Code Playgroud)
如果查询结果为空,则为空行.
如何使用T-SQL?UNPIVOT?
Dav*_*all 18
您可以使用COALESCE功能来实现此目的:
declare @result varchar(max)
select @result = COALESCE(@result + ', ', '') + name
from users
select @result
Run Code Online (Sandbox Code Playgroud)
这将在sql server 2000及更高版本(也可能是早期版本)中运行.请注意,您在sql server 2000中没有varchar(max).
在更高版本的sql server(2005及更高版本)中,也可以使用XML Path()执行此操作
select name + ','
from users
for xml path('')
Run Code Online (Sandbox Code Playgroud)