我目前在SQL Server 2005中工作,表中包含數百萬行。 表中有以下的行和列用於多個列組的sql server中的組concat性能
ID PO_ID Event_ID Item_ID
1 22 970 123456
1 22 970 123457
1 23 970 1234589
1 22 971 12345790
1 22 971 12345792
我想Concat的列ITEM_ID多列組「身份證,PO_ID,EVENT_ID」 輸出會是這樣
ID PO_ID Event_ID Item_ID
1 22 970 123456,123457
1 23 970 1234589
1 22 971 12345790,12345792
我有以下SQL查詢
select ID, PO_ID, Event_ID,
substring(
(SELECT ','+ Item_ID)
FROM table as a
WHERE a.ID=table.ID
AND a.PO_ID=table.PO_ID
and a.event_ID=table.event_ID
FOR XML PATH ('')
)
from table
group by ID,PO_ID,Event_ID;
但這種查詢是在性能方面很慢 有任何優化的方式做這在SQL Server 2005中? 任何幫助將不勝感激。
注意:我沒有創建UDF或索引的權限。
您是否至少嘗試搜索解決方案? 它花了我幾秒鐘才發現: https://stackoverflow.com/questions/15154644/group-by-to-combine-concat-a-column –
[GROUP BY之後連接一個字段]的可能重複(https://stackoverflow.com/questions/13647394/concatenate-one-field-after-group-by) –
感謝您的回覆 是的我搜索解決方案,我有相同的SQL查詢上述問題。 根據以上解決方案 1)它使用SQL Server 2005不支持的東西功能。 2)除了子串之外,我的查詢與解決方案相同。我只是要求提供性能建議,因爲表中有100萬行 –