2013-05-09 86 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

相關問題