SQL关于apply的两种形式cross apply和outer apply

 

A1:把右表表达式(<right_table_expression>)应用到左表(<left_table_expression>)输入的行;
A2:添加外部行;
  使用apply就像是先计算左输入,让后为左输入中的每一行计算一次右输入。
 
select *
from dbo.Customers as C
 cross apply
    (select top 2 *
     from dbo.Orders as O
     where C.customerid=O.customerid
     order by orderid desc) as CA
 
 
 
 
 它是先得出左表【dbo.Customers】里的数据,然后把此数据一条一条的放入右表表式中,分别得出结果集,最后把结果集整合到一起就是最终的返回结果集了(T1的数据 像for循环一样 一条一条的进入到T2中 然后返回一个集合  最后把所有的集合整合到一块  就是最终的结果),最后我们再理解一下上面让记着的话(使用apply就像是先计算左输入,让后为左输入中的每一行计算一次右输入)

posted on 2013-07-02 21:27  heqianjin  阅读(104)  评论(0)    收藏  举报