来自一列的组伙伴

我在名为claim.files的一个表中有两列,第一列被命名为'claim'并且包含声明文件编号ex。 4355,6444,7674等,第二个被命名为“合作伙伴”,并包含ex的合作伙伴代码。 8393,4783,38283. 索赔文件号码是唯一的,但每个索赔文件可以有更多的合作伙伴,所以我想要运行一个可以将每个索赔文件的所有合作伙伴分组的选择。如果我运行这个“选择声明,声称来自claim.files的合作伙伴(4355,6444,7674)声明中的声明,合作伙伴”,如果它拥有更多合作伙伴,它将复制声明。来自一列的组伙伴

我想要的结果是象下面这样:

claim partners 

4355 57878, 45874, 58977

如果我运行下面的代码会重复索赔数

select claim, partner from claim.files where claim in (4355, 6444, 7674) group by claim, partner 

这样做的结果会如何,如果我运行上面的选择

claim partners 

4355 57878

4355 45874

4355 58977

回答:

如果要选择为每个claim分隔的伙伴逗号,y您可以同时使用group_concat

select claim, group_concat(partner separator ',') as partners 

from files

where snr in (4355, 6444, 7674)

group by claim;

Demo:

| claim |   partners | 

|-------|-------------------|

| 4355 | 57878,45874,58977 |


更新时间:如果您使用的是SQL服务器,你可以这样做,而不是:

SELECT 

f1.claim,

STUFF((

SELECT ',' + CAST(f2.partner AS NVARCHAR(50))

FROM files as f2

where snr in (4355, 6444, 7674)

and f1.claim = f2.claim

FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS partners

FROM files as f1

where snr in (4355, 6444, 7674)

group by f1.claim;

- SQL Server demo

| claim |   partners | 

|-------|-------------------|

| 4355 | 57878,45874,58977 |

以上是 来自一列的组伙伴 的全部内容, 来源链接: utcz.com/qa/265694.html

回到顶部