2012-06-27 22 views
1

Possible Duplicate:
Concatenate row values T-SQL合併數據在兩排爲一

我是新來的SQL Server並試圖從網上建議喜歡使用臨時變量,XML路徑,COALESCE和等,但都沒有達到我的要求一些技巧不知何故。

我用蟾蜍的SQL Server 5.5版創建SQL腳本,我用來查詢數據庫服務器的帳戶只得到了讀取權限。因此不能使用CREATE VIEW我相信的陳述。

表名:Customer

ServerName Country contact 
---------- ------- ------------- 
srv1  SG  srv1_contact1 
srv1  SG  srv1_contact2 
srv1  SG  srv1_contact3 
srv2  HK  srv2_contact1 
srv2  HK  srv2_contact2 
srv3  JP  srv3_contact1 
srv3  JP  srv3_contact2 
srv3  JP  srv3_contact3 
srv4  KR  srv4_contact1 

預期輸出:

ServerName Country contact 
---------- ------- ------------------------------------------- 
srv1  SG  srv1_contact1; srv1_contact2; srv1_contact3 
srv2  HK  srv2_contact1; srv2_contact2 
srv3  JP  srv3_contact1; srv3_contact2; srv3_contact3 
srv4  KR  srv4_contact1 
+1

不知道一個觀點將如何幫助。另外,如果您發佈了您嘗試的XML路徑查詢,我們可能會告訴您爲什麼它不符合您的要求(我們不知道「以某種方式」意味着什麼)。 –

+0

請參閱http://stackoverflow.com/questions/1874966/concatenate-row-values-t-sql獲取更好的一套解決方案。 –

回答

5
SELECT ServerName, Country, contact = STUFF((SELECT '; ' 
    + ic.contact FROM dbo.Customer AS ic 
    WHERE ic.ServerName = c.ServerName AND ic.Country = c.Country 
    FOR XML PATH(''), TYPE).value('.','nvarchar(max)'), 1, 2, '') 
FROM dbo.Customer AS c 
GROUP BY ServerName, Country 
ORDER BY ServerName; 
+0

感謝您的回覆@Aaron。使用XML PATH時會出現類似的錯誤。錯誤MSG「查找錯誤 - SQL Server數據庫錯誤:第7行:'XML'附近語法不正確。」 ****我的XML路徑從這裏開始**** SELECT DISTINCT STUFF((SELECT','+從客戶處聯絡FOR XML PATH('')),1,1,'')AS聯繫人客戶**** MY XML PATH END HERE **** – user1486134

+0

也許這是TOAD的問題,因爲它看起來不像SQL Server錯誤(並且我測試了這個代碼)。請嘗試從Management Studio運行代碼,或者將代碼放入存儲過程,並從TOAD調用* that *。 –