我目前在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万行 –