【发布时间】:2017-11-23 13:14:27
【问题描述】:
我目前在 SQL Server 2005 中工作,表包含数百万行。 该表有以下行和列
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
我想为多个列组“ID、PO_ID、Event_ID”连接列 item_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 或索引的权限。
【问题讨论】:
-
您是否至少尝试过寻找解决方案?我只花了几秒钟就找到了这个:stackoverflow.com/questions/15154644/…
-
感谢您的回复,是的,我正在寻找解决方案,我对上述问题有相同的 SQL 查询。根据上述解决方案 1) 它使用的是 SQL server 2005 不支持的 stuff 功能。 2)我的查询与解决方案的查询相同,但子字符串除外。我只是询问性能建议,因为表有数百万行
-
我也使用了交叉应用解决方案,但性能真的很慢
标签: sql sql-server tsql