0

この目的でCOALESCEやその他の「メソッド」を使用した例をたくさん見ました。そのうちの1つを次に示します。

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

期待:[値、値、値]

結果:[値、値、値]

誰かこの問題がありますか、それとも私は他の何かで私の間違いを見つけなければなりませんか?

4

2 に答える 2

2

値に空白があるようですcolumn_name。空白を削除するには、LTRIM()RTRIM()その周辺を使用する必要があります。column_name

declare @result nvarchar(1024)

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

select @result

SQL FiddlewithDemoを参照してください

REPLACE()または、最終結果で空白を削除するために使用できます。

declare @result nvarchar(1024)

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

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

SQL FiddlewithDemoを参照してください

于 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 に答える