我为此目的看了很多使用COALESCE和其他“方法”的例子。这是其中之一:
@result nvarchar(1024)
SELECT @result = COALESCE(@result + ',', '') + column_name
FROM some_table
预期:[价值,价值,价值]
结果:[价值,价值,价值]
有人遇到这个问题,还是我必须在其他方面找到错误?
答案 0 :(得分:2)
听起来你可能在column_name
值中有空格。您应该在column_name
周围使用LTRIM()
和RTRIM()
删除任何空格。:
declare @result nvarchar(1024)
SELECT @result = COALESCE(@result + ',', '') + ltrim(rtrim(col1))
FROM yourtable
select @result
或者您可以在最终结果上使用REPLACE()
来删除空格:
declare @result nvarchar(1024)
SELECT @result = COALESCE(@result + ',', '') + col1
FROM yourtable
select replace(@result, ' ', '')
答案 1 :(得分:1)
@result nvarchar(1024)
SELECT @result = COALESCE(ltrim(rtrim(@result)) + ',', '') + ltrim(rtrim(column_name))
FROM some_table