首页 > 解决方案 > 如何使用具有相同 ID 的列来使用东西

问题描述

我将从一个 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 将它放在不同的列但在同一行中

标签: sql-serversql-server-2008

解决方案


尝试以下操作:

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 部分。


推荐阅读