我可以从子查询中获取逗号分隔值吗?如果没有,如何完成这项工作?

Pri*_*esh 4 t-sql sql-server correlated-subquery

我有一张桌子

Create table Country_State_Mapping
(
    Country nvarchar(max),
    State nvarchar(max)
)
Run Code Online (Sandbox Code Playgroud)

有5条记录.

Insert into Country_State_Mapping values('INDIA', 'Maharastra')
Insert into Country_State_Mapping values('INDIA', 'Bengal')
Insert into Country_State_Mapping values('INDIA', 'Karnatak')
Insert into Country_State_Mapping values('USA', 'Alaska')
Insert into Country_State_Mapping values('USA', 'California')
Run Code Online (Sandbox Code Playgroud)

我需要编写一个SQL查询,它将给我2条记录/ 2列,如下所示.

第1列Contry和第二列AllStates

1条记录(2列)

印度和马哈拉施特拉,孟加拉,卡纳塔克

第2

美国和加利福尼亚州的阿拉斯加州

我试过我喜欢这个

select distinct
    OutTable.Country,
    (select State
     from Country_State_Mapping InnerTable
     where InnerTable.Country = OutTable.Country)
from Country_State_Mapping AS OutTable
Run Code Online (Sandbox Code Playgroud)

但没有奏效......

Kev*_*mey 13

SELECT Country, AllStates = 
    STUFF((SELECT ', ' + State
           FROM Country_State_Mapping b 
           WHERE b.Country = a.Country
           FOR XML PATH('')), 1, 2, '')
FROM Country_State_Mapping a
GROUP BY Country
Run Code Online (Sandbox Code Playgroud)