大家好!
我正在寻找一种简单的方法来连接'n'值.就像是:
SELECT MyConcat(',', T.TextColumn)
FROM SomeTable AS T
WHERE T.SomeOtherColumn = SomeCondition
Run Code Online (Sandbox Code Playgroud)
所以,如果我有一个像这样的表:
SomeTable:
Id | TextColumn | SomeOtherColumn
----+------------+----------------
1 | Qwerty | Y
2 | qwerty | N
3 | azerty | N
4 | Azerty | Y
Run Code Online (Sandbox Code Playgroud)
它会导致类似于:
SQL:
SELECT MyConcat(';', T.TextColumn)
FROM SomeTable AS T
WHERE T.SomeOtherColumn = 'Y'
RESULT:
'Qwerty;Azerty'
Run Code Online (Sandbox Code Playgroud)
小智 40
这应该做的伎俩:
DECLARE @Result VARCHAR(MAX);
SELECT
@Result = CASE
WHEN @Result IS NULL
THEN T.TextColumn
ELSE @Result + ';' + T.TextColumn
END
FROM
SomeTable AS T
WHERE
T.SomeOtherColumn = 'Y';
SELECT @Result
Run Code Online (Sandbox Code Playgroud)
Hog*_*gan 30
SELECT CAST(TextColumn + ';' AS VARCHAR(MAX))
FROM SomeTable
WHERE SomeOtherColumn = 'Y'
FOR XML PATH ('')
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢尾随;
,则可以从结果中删除该字符.
2017年编辑
许多平台现在支持窗口函数LISTAGG()
归档时间: |
|
查看次数: |
39191 次 |
最近记录: |