如何使用具有相同ID的列使用东西

时间:2018-09-03 16:37:46

标签: sql-server sql-server-2008

我将从sql表示例开始

ID    Column

1     Name1
1     Name2
2     Name3
2     Name4

我只想使用ID相同的东西。 我要输出的示例

 Name1,Name2 ->FirstRow
 Name3,Name4 ->SecondRow

这是我想要做的,但是我将所有最高值都放入一行

Select REPLACE(STUFF((SELECT top(10) CHAR(10) + convert(varchar(50),TrnDocumentID) + ' '+name 
                  FROM InventoryTrans  where TrnDocumentID=TrnDocumentID
                   FOR XML PATH ('')) , 1, 1, '') ,
          CHAR(10) , CHAR(13)+CHAR(10))

我也不想将trnDocumentID放在不同的列但在同一行

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

declare @tab table (ID int,    [Column] varchar(100))
insert into @tab select 1,     'Name1'
union
select 1,     'Name2'
union
select 2,     'Name3'
union
select 2,     'Name4'

select * from @tab

Select ID, REPLACE(STUFF((SELECT top(10) CHAR(10) + convert(varchar(50),ID) + ' '+[Column]
                  FROM @tab t_in where t_in.ID=t_out.ID
                   FOR XML PATH ('')) , 1, 1, ''),
          CHAR(10) , CHAR(13)+CHAR(10)) Grouped_Value
from @tab t_out
group by ID

您始终可以修改Grouped_Value以删除ID部分。