在SQL Server中,CROSS APPLY
和 OUTER APPLY
是用于将一个表值函数(TVF)或子查询应用于每一行输入的运算符。它们允许将外部查询的每一行与内部查询的结果集进行连接,适用于返回多个结果的关联查询。两者的主要区别在于处理结果集的方式。
1. CROSS APPLY
解释:
CROSS APPLY
类似于INNER JOIN
,仅返回输入表中与子查询或表值函数匹配的行。如果子查询或函数返回空结果集,则不会包含该行。
应用场景:
- 用于内连接操作,常用于过滤数据,使得只包含有匹配结果的行。
示例:
假设我们有两个表 Orders
和 OrderDetails
,并且需要为每个订单返回对应的详细信息:
SELECT o.OrderID, d.ProductID, d.Quantity
FROM Orders o