0

我在 SQL Server 中有 2 个表,其中一个名称有多个位置,我需要做的就是将这些位置合并到一个单元格中。

Table 1
Name
H
I
J

Table 2
Name Location
H    Delhi
H    Mumbai
H    Hyderabad
I    Chennai
I    Delhi

现在申请加入后,结果应该如下

Name Location
H    Delhi, Mumbai, Hyderabad
I    Chennai, Delhi

请尽快帮助我。

4

2 回答 2

2

检查此代码,您可以使用 xml 路径进行连接

              DROP TABLE #temp;
    Create table #temp
    (
    Name varchar(10),
    Location varchar(100)
    )

    Insert into #temp
    values ('h','delhi'),
    ('h','Mumbai'),
    ('h','Hyderabad'),
    ('I','Chennai'),
    ('I','Delhi')

    select t.Name,
        STUFF((   SELECT ', ' +te.Location
            FROM #temp te
            WHERE T.Name = te.Name
            FOR XML PATH ('')
        ),1,1,'') as Location
    from #temp  t
    group by t.Name

结果集

名称 位置

h 德里、孟买、海得拉巴

我德里钦奈

于 2013-05-09T06:48:26.943 回答
0

嗨,我刚刚意识到您需要两个表,只需对代码进行一些更改,请检查下面的代码

    Create table #temp1
    (
    Name varchar(10) 

    )

    Create table #temp2
    (
    Name varchar(10),
    Location varchar(100)
    )

    Insert into #temp1
    values ('h' ),('I' )

    Insert into #temp2
    values ('h','delhi'),
    ('h','Mumbai'),
    ('h','Hyderabad'),
    ('I','Chennai'),
    ('I','Delhi')

    Select *from #temp1
    Select *from #temp2



    select t.Name,
        STUFF((   SELECT ', ' +te.Location
            FROM #temp2 te
            WHERE T.Name = te.Name
            FOR XML PATH ('')
        ),1,1,'') as Location
    from #temp1  t
    group by t.Name 


   DROP TABLE #temp1;

 DROP TABLE #temp2;
于 2013-05-09T08:55:49.030 回答