2016-07-29 166 views
0

我有查詢產生以下結果:合併兩行合併到一列

GUID  ClientGUID   TASK     VALUE 

========================= ===============================================

123 15757400200  Dollar Unit   Consult Time 15 Min (Quantity):1 
123 15757400200  Dollar Unit   Patient/Family Education 15 min 
456 15757400200  Swallow Clarification Swallow therapy 30 min (Qty):1 

我希望獲得下面的結果:

GUID  ClientGUID  TASK     VALUE 

123  15757400200 Dollar Unit   Consult Time 15 Min (Quantity):1 ; Patient/Family Education 15 min (Qty):1 
456  15757400200 Swallow Clarification Swallow therapy 30 min (Qty):1 
+3

您可以按照發布 在這個堆棧的其他交易所模式http://stackoverflow.com/questions/5031204/does-t-sql-have-an-aggregate-function-to-concatenate-strings/ 5031297#5031297 – grambo25

回答

0

也許這個腳本將是有益的:

SELECT GUID, ClientGUID, TASK, 
STUFF((SELECT ';' + VALUE FROM YOUR_TABLE a 
WHERE b.GUID = a.GUID FOR XML PATH('')),1 ,1, '') AS NEW_VALUE 
FROM YOUR_TABLE b 
GROUP BY GUID, ClientGUID, TASK 
0

您可以使用STUFF獲得期望的結果。

 STUFF((SELECT ',' + VALUE 
        FROM tablename where "put your condition here" 
        FOR XML PATH ('') ) , 1,1,'') AS value 
+0

使用「NOLOCK」有什麼用?你看到加斯東的回答了嗎? – sstan

+0

我沒有看到下面的代碼.. :)我已經更新了我的代碼..我使用NOLOCK,以便即使在表的情況下在更新模式下查詢將能夠獲得記錄 –

+0

[壞習慣:把NOLOCK無處不在]( http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/) – sstan