0

我看到了很多为此目的使用 COALESCE 和其他“方法”的示例。这里是其中之一:

     @result nvarchar(1024)
     SELECT @result = COALESCE(@result + ',', '') + column_name
     FROM some_table

预期:[价值,价值,价值]

结果:[价值,价值,价值]

有没有人有这个问题,或者我必须在其他事情上找到我的错误?

4

2 回答 2

2

听起来您的column_name值中可能有空格。您应该使用LTRIM()andRTRIM()周围的column_name来删除任何空格。:

declare @result nvarchar(1024)

SELECT @result = COALESCE(@result + ',', '') + ltrim(rtrim(col1))
FROM yourtable

select @result

SQL Fiddle with Demo

或者您可以REPLACE()在最终结果上使用来删除空格:

declare @result nvarchar(1024)

SELECT @result = COALESCE(@result + ',', '') + col1
FROM yourtable

select replace(@result, ' ', '')

SQL Fiddle with Demo

于 2012-09-11T10:20:54.800 回答
1
@result nvarchar(1024)
SELECT @result = COALESCE(ltrim(rtrim(@result)) + ',', '') + ltrim(rtrim(column_name))
FROM some_table
于 2012-09-11T10:16:50.217 回答