SQL Server基础:Apply关键字用法介绍

1、关键概念介绍

APPLy关键字是字用SQLServer版本中开始提供的一个系统关键字。

APPLY的法介功能同联接很类似,APPLY运算分左右两个部分,关键

APPLY的字用右表达式:左表达式的每一行都和右表达式进行一次计算,即右表达式需要根据左表达式提供的值进行相关计算来获取相关结果,然后返回给客户端。

APPLY的法介右表达式:是一个子查询或表值函数。

2、关键APPLY运算符和联接查询区别

APPLY:先进行左表达式的字用数据获取,然后根据左表达式的法介记录依次对右表达式的云服务器提供商值进行相关获取。

联接:先对左右两张表进行笛卡尔乘积运算。关键

3、字用APPLY运算符的法介语法格式

CROSS APPLY:内部联接,两张表直接连接,关键不需要任何的字用关联条件,产生的法介结果就是这两张表的笛卡儿集等价于CROSS JOIN;

CROSS Apply 和 CROSS JOIN的区别:Cross Apply 可以在关联表子查询中用前一个关联表的字段的值,CROSS JOIN不可以。

比如:

SELECT * FROM t1 a CROSS APPLY t2 b WHERE a.id=b.id  --相当于 inner join  SELECT * FROM t1 a CROSS JOIN t2 b WHERE a.id=b.id --报错 

OUTER APPLY:左外联接,右侧的亿华云计算表表达式返回一个空集合,CROSS APPLY运算符不会返回相应的左侧行,即OUTER APPLY和在派生表上进行LEFT JOIN是等同的

SELECT * FROM t1 a OUTER APPLY (select * from t2 where id=a.id) b  -- 相当于 left join。 

4、Cross Apply 用途

4.1 配合表值函数使用

如果查询结果集需要用到表值函数对某个字段的值进行处理的话,可以使用CROSS APPLY。

4.2 top子查询的用法

-- 查询语文第一名,数学前两名,英语前五名的name,学科,分数,网站模板用cross apply实现方法如下

SELECT b.* FROM ( select Subject=Chiness,num=1  union all select Math,3 union all select English,5 )a cross apply (select top(a.num) * from Students  where Subject=a.Subject )b

数据库
上一篇:戴尔PowerScale可大幅提升智能驾驶研发效率
下一篇:昇腾科研创新使能计划即将启动 加速人工智能生态建设