【发布时间】:2011-09-04 10:52:25
【问题描述】:
大家好!
我正在寻找一种连接“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] ( @delimiter 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')
标签: sql-server tsql