是否有用於SQL Server的Implode類型函數?SQL Server 2000中的Implode類型函數?
我已經是一個列表(SQL Server表):
Apple
Orange
Pear
Blueberry
,我希望他們出來爲
Apple, Orange, Pear, Blueberry
我希望能爲空格和逗號是可配置的但我總是可以替換它,如果它不是...
快速幫助,將不勝感激!
是否有用於SQL Server的Implode類型函數?SQL Server 2000中的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>
當然,如果這是需要在每行的基礎上,你可以使用的UDF或really cool FOR XML招
我通常使用FOR XML PATH方法對於這一點,它爲行子查詢還有,只需
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,'')
謝謝!重複發帖,抱歉。我不知道在....下面搜索什麼。 – 2009-02-10 23:28:23
我會告訴你一個祕密 - 你在Google上限制搜索到這個網站會更好。 http://www.google.com/search?q=site:stackoverflow.com+concatenate+sqlserver – 2009-02-11 01:56:50