SQL Server有Implode类型的函数吗?
我有一个列表(在 SQL Server 表中):
Apple
Orange
Pear
Blueberry
我希望他们能成为
Apple, Orange, Pear, Blueberry
我希望空格和逗号是可配置的,但如果不是,我可以随时替换它。
SO 上已经有一些与此相关的问题(搜索 PIVOT 或 UNPIVOT 或 GROUP_CONCAT),但是针对您所述问题的 SQL Server 的简单解决方案(使用变量连接的技巧):
DECLARE @str AS varchar(MAX)
DECLARE @separator AS varchar(50)
SET @separator = ', ' -- Here's your configurable version
SELECT @str = COALESCE(@str + @separator, '') + <column_name>
FROM <table_name>
ORDER BY <sort_order>
SELECT ', ' + <column_name>
FROM <table_name>
ORDER BY <sort_order>
FOR XML PATH('')
这将为您提供开头带有“,”的列表,以及删除该列表的最快方法就是用东西
SELECT STUFF((
SELECT ', ' + <column_name>
FROM <table_name>
ORDER BY <sort_order>
FOR XML PATH('')
),1,2,'')