0

重複の可能性:
Microsoft SQL Server2005でgroup_concatMySQL関数をシミュレートしますか?

一時テーブルにスペースで連結された単一の列に(動的な)行を挿入するにはどうすればよいですか。SQLServer2005を使用しています。

元。LetterTable

LetterID LetterRow
    1        a
    2        b
    3        c
    4        d
    5        e

次のような一時テーブルに挿入します

#TempTable

LetterID LetterRow
    1     a b c d e

前もって感謝します。

4

1 に答える 1

1

最初の例で LetterID が 1 に等しい理由がよくわかりませんが、これを試すことができます (このような解決策は、グループ化された行の連結に役立ちます)

insert into #TempTable (LetterID, LetterRow)
select
    min(L.LetterID) as LetterID,
    stuff(
        (
            select ' ' + T.LetterRow
            from LetterTable as T
            for xml path(''), type
        ).value('.', 'nvarchar(max)')
   ,1,1, '') as LetterRow
from LetterTable as L

1 行の場合、次のように書くこともできます。

declare @LetterRow nvarchar(max), @LetterID int

select @LetterID = min(LetterID) from LetterTable
select @LetterRow = isnull(@LetterRow + ' ', '') + LetterRow from LetterTable

insert into #TempTable (LetterID, LetterRow)
select @LetterID, @LetterRow
于 2012-10-30T05:53:54.053 に答える