0

可能重复:
在 Microsoft SQL Server 2005 中模拟 group_concat MySQL 函数?

如何将行(动态)插入到由空格连接到临时表的单个列中。我正在使用 SQL Server 2005。

前任。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

对于一行,您也可以这样写:

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 回答