我在一个简化的平台中编写sql代码,并且无法访问平台代码,所以我需要时不时地解决一些问题(并不总是最好的实践代码)。
我需要将select子句的结果存储到单个单元格中以供进一步使用。
例如:表产品有productID, productName, packages。
表变体有productID, packageID。
变体的示例数据:
productID - packageID
1001 - K1001
1001 - K1002
1001 - K1003我需要将结果保存到(K1001, K1002, K1003)或类似的单元格包中。
仅仅使用sql就可以做到这一点吗?
我正在使用,平台/RDBMS是自定义编码的,并不广为人知。
发布于 2017-03-30 08:16:06
您可以将STUFF与FOR XML PATH结合使用。
查询
select productID, stuff((
select ', ' + packageID
from your_table_name
where (productID = t.productID)
for xml path(''), type).value('(./text())[1]','varchar(max)')
, 1, 2, '') as single_value
from your_table_name t
group by productID;发布于 2017-03-30 08:20:19
从Server开始,您可以:
SELECT
STRING_AGG(productId + ' - ' + packageId, ',')
FROM yourTable在以前的版本中,您要么使用游标/xml黑进,要么使用CLR聚合函数。
https://stackoverflow.com/questions/43111725
复制相似问题