可能重複:
Is there a way to create a SQL Server function to 「join」 multiple rows from a subquery into a single delimited field?什麼是TSQL上的String.Join的等價物?
大家好!
我正在尋找一種簡單的方法來連接'n'值。喜歡的東西:
SELECT MyConcat(',', T.TextColumn)
FROM SomeTable AS T
WHERE T.SomeOtherColumn = SomeCondition
所以,如果我有一個表,如:
SomeTable:
Id | TextColumn | SomeOtherColumn
----+------------+----------------
1 | Qwerty | Y
2 | qwerty | N
3 | azerty | N
4 | Azerty | Y
這將導致類似:
SQL:
SELECT MyConcat(';', T.TextColumn)
FROM SomeTable AS T
WHERE T.SomeOtherColumn = 'Y'
RESULT:
'Qwerty;Azerty'
我已經找到了解決方案通過創建以下功能: CREATE FUNCTION [dbo]。[JoinTexts] ( @deli斜切VARCHAR(20), @WhereClause VARCHAR(1) ) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @Texts VARCHAR(MAX) SELECT @Texts = COALESCE(@Texts + @delimiter, '') + T.Texto FROM SomeTable AS T WHERE T.SomeOtherColumn = @WhereClause RETURN @Texts END GO 用法: SELECT dbo.JoinTexts( '', 'Y') – Gil 2011-05-30 15:14:11