2013-05-09 74 views
0

我在SQL Server中有两个表,其中有多个位置名称,我需要做的就是将俱乐部位置合并为一个这个名字的单元格。如何在一行的单个单元格中使用逗号合并多个单元格的值

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 

请帮我在这尽快。

+0

使用循环,对于每一个第一资本查询 – matzone 2013-05-09 06:38:16

回答

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; 
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德里,孟买,海得拉巴

我钦奈,德里

+0

它不工作 – IAmHomes 2013-05-09 07:55:51

+0

@SAK HI SAK我力添加位置的代码添加创建临时表的命令,它现在慈祥检查..或如果你有任何错误,请让我知道 – 2013-05-09 08:50:12

相关问题