可能重复:
Simulating group_concat MySQL function in Microsoft SQL Server 2005?
如何将行(动态)插入由空格连接到临时表的单个列。我正在使用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
提前致谢。
答案 0 :(得分: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