本文介绍了Order - OrderDetail在不使用Cursor的情况下获取结果集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个如下的基本模式
I have a basic schema that is something like below
OrderTable
Id int
1
2
OrderDetailTable
Id int - OrderId int
1 1
2 1
3 1
4 1
5 2
6 2
7 2
我想得到一个表
OrderOrderDetailCombinationTable
Order int - OrderDetails varchar(100)
示例
Order - OrderDetails
1 1,2,3,4
2 5,6,7
$ b b
我可以通过使用光标获得这个结果,但是游标的性能会受到影响,因为我知道什么是更好的方法来获得这个结果? p>
I can get this result by using cursor but cursor has a performance penalty as I know so what can be the better way to get this result ?
推荐答案
查询:
SQLFIDDLEEXample
SELECT o.orderid AS [Order],
STUFF(( SELECT ',' +CAST( x.id as varchar(2) )
FROM orderdetail x
WHERE o.orderid = x.orderid
FOR XML PATH ('')
),1,1,'') as OrderDetails
FROM [orderdetail] o
INNER JOIN [order] oo
ON oo.id = o.orderid
GROUP BY o.orderid
结果:
| ORDER | ORDERDETAILS |
------------------------
| 1 | 1,2,3,4 |
| 2 | 5,6,7 |
这篇关于Order - OrderDetail在不使用Cursor的情况下获取结果集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!