博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]CROSS APPLY 和outer apply 的区别
阅读量:6243 次
发布时间:2019-06-22

本文共 934 字,大约阅读时间需要 3 分钟。

CROSS APPLY 和 outer apply 的区别:
DECLARE
 
@t
 
table
 (姓名 
varchar
(
10
))
insert
 
into
 
@T
 
values
(
'
张三
'
)
insert
 
into
 
@T
 
values
(
'
李四
'
)
insert
 
into
 
@T
 
values
(
'
王二
'
)
insert
 
into
 
@T
 
values
(
NULL
 )
DECLARE
 
@T2
 
table
 (姓名 
varchar
(
10
) , 课程 
varchar
(
10
) , 分数 
int
)
insert
 
into
 
@T2
 
values
(
'
张三
'
 , 
'
语文
'
 , 
74
)
insert
 
into
 
@T2
 
values
(
'
张三
'
 , 
'
数学
'
 , 
83
)
insert
 
into
 
@T2
 
values
(
'
张三
'
 , 
'
物理
'
 , 
93
)
insert
 
into
 
@T2
 
values
(
'
李四
'
 , 
'
物理
'
 , 
91
)
insert
 
into
 
@T2
 
values
(
NULL
 , 
'
数学
'
 , 
50
)
select
 
*
 
from
 
@T
 a
cross
 apply
    (
select
 课程,分数 
from
 
@t2
 
where
 姓名
=
a.姓名) b
/*
姓名         课程         分数
---------- ---------- -----------
张三         语文         74
张三         数学         83
张三         物理         93
李四         物理         91
(4 行受影响)
*/
select
 
    
*
 
from
 
    
@T
 a
outer
 apply
    (
select
 课程,分数 
from
 
@t2
 
where
 姓名
=
a.姓名) b
/*
姓名         课程         分数
---------- ---------- -----------
张三         语文         74
张三         数学         83
张三         物理         93
李四         物理         91
王二         NULL       NULL
NULL       NULL       NULL
(6 行受影响)
*/

转载于:https://www.cnblogs.com/sofire/archive/2010/04/22/1717928.html

你可能感兴趣的文章
Java中菜单组件
查看>>
git reset revert 回退回滚取消提交返回上一版本
查看>>
适配mpvue平台的的微信小程序日历组件mpvue-calendar
查看>>
Consul Config 使用Git做版本控制的实现
查看>>
我们必须要知道的RESTful服务最佳实践
查看>>
百度调整Q2营收预期
查看>>
阿里巴巴智慧建筑(IB)峰会 与筑梦者共建新生态
查看>>
Apache Zeppelin安装及使用
查看>>
Redis实现微博后台业务逻辑系列(四)
查看>>
Power5连接使用DS8000遇到问题处理一例
查看>>
迈克菲实验室:Flame病毒的深度分析
查看>>
用十条命令在一分钟内检查Linux服务器性能[转]
查看>>
深入理解bash及字符串的处理
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
DNS多点部署IP Anycast+BGP实战分析
查看>>
iostat详细使用
查看>>
用户与组
查看>>
【12c新特性】12c中新加入的Enqueue Lock
查看>>
JavaScript语法详解(四)
查看>>
Fail to queue the whole FAL gap in dataguard一例
查看>>