您当前的位置:首页 > 电脑百科 > 数据库 > SQL Server

SQLServer基础:Apply关键字用法介绍

时间:2021-04-16 13:34:29  来源:数据库技术分享社区  作者:
SQLServer基础:Apply关键字用法介绍

 

今天给大家梳理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



Tags:Apply关键字   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
今天给大家梳理Apply关键字用法,希望对大家能有所帮助!1、概念介绍APPLy关键字是SQLServer版本中开始提供的一个系统关键字。APPLY的功能同联接很类似,APPLY运算分左右两个部...【详细内容】
2021-04-16  Tags: Apply关键字  点击:(217)  评论:(0)  加入收藏
▌简易百科推荐
概述我们知道SQL Server是微软公司推出的重要的数据库产品,通常情况下只支持部署在windows平台上。不过令人感到兴奋的是,从SQL Server 2017开始支持 linux系统。此 SQL Serve...【详细内容】
2021-12-17  雪竹聊运维    Tags:SQLSERVER   点击:(13)  评论:(0)  加入收藏
介绍一个SQL Server 2016后新增的功能:查询存储。查询存储的工作原理类似于飞行数据记录器或者黑匣子,不断地收集与查询和计划相关的编译和运行时信息,包括已执行查询的历史记...【详细内容】
2021-08-17  哈囉克里    Tags:SQL Server   点击:(65)  评论:(0)  加入收藏
众所周知SQL SERVER是微软的数据库拳头产品,有着图形化友好界面、操作门槛低、部署难度小,一键式安装的特点,受到全球开发者及企业的青睐。从历代版本说起,经典2000版本是划时代...【详细内容】
2021-07-19  风影互联    Tags:SQL SERVER   点击:(90)  评论:(0)  加入收藏
要想看懂存储过程的意思,就必须要多看存储过程和实例,多百度查询前人的积累的说明,只有在不断地实践才能形成自己的知识,首先,先看到一些基础的语法,慢慢就看懂存储过程说表达的意...【详细内容】
2021-05-14  ITLIFEMAN    Tags:sql server   点击:(177)  评论:(0)  加入收藏
在SQL server应用开发过程中,可能会遇到ntext、text 和 image 三种数据类型,这三种数据类型是做什么的,有什么区别呢?下面表格从存储类型、存储数据的最大长度和存储大小三个维...【详细内容】
2021-04-26  数据超酷  今日头条  Tags:SQL Server   点击:(232)  评论:(0)  加入收藏
在数据库使用过程中,为了数据的安全,除了通过服务器防火墙设置访问权限外,还可以通过在数据库中通过创建触发器的方式来控制用户或特定IP的登录权限。USE master;创建数据库登...【详细内容】
2021-04-23  数据超酷  今日头条  Tags:SQL Server   点击:(219)  评论:(0)  加入收藏
今天给大家梳理Apply关键字用法,希望对大家能有所帮助!1、概念介绍APPLy关键字是SQLServer版本中开始提供的一个系统关键字。APPLY的功能同联接很类似,APPLY运算分左右两个部...【详细内容】
2021-04-16    数据库技术分享社区  Tags:Apply关键字   点击:(217)  评论:(0)  加入收藏
文章来源:https://mp.weixin.qq.com/s/pEXio0MNoi1k0w9XgYECNw作者:廖学强 1. sqlserver查看实例级别的信息,使用SERVERPROPERTY函数select SERVERPROPERTY ('propertyname...【详细内容】
2021-01-12      Tags:SQL Server   点击:(188)  评论:(0)  加入收藏
作为程序员来说,与数据库打交道是十分频繁的分页查询是一个开发者必须掌握的基本知识点,目前整理了下面三种SQLServer分页查询语句的写法,仅供参考。一、Top Not IN 方式(查询...【详细内容】
2020-12-29      Tags:分页查询   点击:(174)  评论:(0)  加入收藏
因工作需要,长期用到Microsoft SQL Server,很多人还不知道怎么安装和配置这个Microsoft SQL Server,今天我就从头到尾来安装一遍,用截图软件截下图来打上文字或者画上箭头来标示...【详细内容】
2020-09-15      Tags:SQL Server2000   点击:(109)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条