我看到了很多为此目的使用 COALESCE 和其他“方法”的示例。这里是其中之一:
@result nvarchar(1024)
SELECT @result = COALESCE(@result + ',', '') + column_name
FROM some_table
预期:[价值,价值,价值]
结果:[价值,价值,价值]
有没有人有这个问题,或者我必须在其他事情上找到我的错误?
我看到了很多为此目的使用 COALESCE 和其他“方法”的示例。这里是其中之一:
@result nvarchar(1024)
SELECT @result = COALESCE(@result + ',', '') + column_name
FROM some_table
预期:[价值,价值,价值]
结果:[价值,价值,价值]
有没有人有这个问题,或者我必须在其他事情上找到我的错误?
听起来您的column_name
值中可能有空格。您应该使用LTRIM()
andRTRIM()
周围的column_name
来删除任何空格。:
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, ' ', '')
@result nvarchar(1024)
SELECT @result = COALESCE(ltrim(rtrim(@result)) + ',', '') + ltrim(rtrim(column_name))
FROM some_table