APPLY
APPLY运算符把右表表达式应用左输入中的每一行。右表达式可以引用左输入中的列,对于左表中的每一行,都要计算一次右边输入中表达式。这一步会把左边每一行和来自右表表达式的相应行进行匹配,并将生成的结果集合并起来,返回组合后结果。
APPLY有两种类型:
1、CROSS APPLY 2、OUTER APPLY
两者的区别是如果内部(右)表表达式为外部(左)行返回的是空集,则CROSS APPLY不会返回该外部(左)行。而OUTER APPLY 会返回这样的行,对于内表表达式的属性,则使用NULL作为其占位符
举例 :
创建一个顾客 表和一个订单员
APPLY运算符把右表表达式应用左输入中的每一行。右表达式可以引用左输入中的列,对于左表中的每一行,都要计算一次右边输入中表达式。这一步会把左边每一行和来自右表表达式的相应行进行匹配,并将生成的结果集合并起来,返回组合后结果。
APPLY有两种类型:
1、CROSS APPLY 2、OUTER APPLY
两者的区别是如果内部(右)表表达式为外部(左)行返回的是空集,则CROSS APPLY不会返回该外部(左)行。而OUTER APPLY 会返回这样的行,对于内表表达式的属性,则使用NULL作为其占位符
举例 :
创建一个顾客 表和一个订单员
SET NOCOUNT ON; IF OBJECT_ID('dbo.Orders') IS NOT NULL DROP TABLE dbo.Orders; IF OBJECT_ID('dbo.Customers') IS NOT NULL DROP TABLE dbo.Customers; GO CREATE TABLE dbo.Customers ( customerid CHAR(5) NOT NULL PRIMARY KEY, city VARCHAR(10) NOT NULL ); CREATE TABLE dbo.Orders ( orderid INT NOT NULL PRIMARY KEY, customerid CHAR(5) NULL REFERENCES Customers(customerid) ); GO INSERT INTO dbo.Customers(customerid, city) VALUES('FISSA', 'Madrid'); INSERT INTO dbo.Customers(customerid, city) VALUES('FRNDO', 'Madrid'); INSERT INTO dbo.Customers(customerid, city) VALUES('KRLOS', 'Madrid'); INSERT INTO dbo.Customers(customerid, city) VALUES('MRPHS', 'Zion'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(1, 'FRNDO'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(2, 'FRNDO'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(3, 'KRLOS'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(4, 'KRLOS'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(5, 'KRLOS'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(6, 'MRPHS'); INSERT INTO dbo.Orders(orderid, customerid) VALUES(7, NULL); SELECT * FROM dbo.Customers; SELECT * FROM dbo.Orders; --要求查询为每个顾户返回具有最大订单ID的两个订单 -- Two most recent orders for each customer SELECT C.customerid, C.city, A.orderid FROM dbo.Customers AS C CROSS APPLY (SELECT TOP (2) O.orderid, O.customerid FROM dbo.Orders AS O WHERE O.customerid = C.customerid ORDER BY orderid DESC) AS A; -- Two most recent orders for each customer, -- including customers that made no orders SELECT C.customerid, C.city, A.orderid FROM dbo.Customers AS C OUTER APPLY (SELECT TOP (2) O.orderid, O.customerid FROM dbo.Orders AS O WHERE O.customerid = C.customerid ORDER BY orderid DESC) AS A;
发表评论
-
转:避免全表扫描的sql优化
2015-02-05 16:37 1342http://tech.diannaodian.com/dw/ ... -
给表加上聚集索引和非聚集索引
2014-12-11 17:28 702创建简单非聚集索引 以下示例为 Purchasing.Pro ... -
查看表中索引语句
2014-12-11 10:37 683SELECT object_name(object_id) ... -
SQL2008一行转多行的精典写法
2013-08-28 12:06 420--创建测试表 create table t1( id ... -
在sql server中利用with as实现递归功能
2013-06-25 10:48 537在sqlserver2005之前,要实现递归功能比较麻烦,比如 ... -
SQL 2005 with(nolock)详解
2013-06-17 17:03 584大家在写查询时, ... -
用SQL语句查询每门成绩都大于80的学生姓名
2013-05-29 10:39 1732昨天遇到的一个SQL面试题,感觉很有趣。 表名stu 结构 ... -
SqlServer强制断开数据库已有连接的方法
2013-02-22 11:03 1625在master数据库中执行如下代码 declare @i IN ... -
Sql获取第一天、最后一天
2013-01-03 14:56 9686① 本月第一天(--减去今天再加上1天) SELECT DAT ... -
表函数与游标
2012-12-25 16:07 754--建立数据源 create table tb1(zm ch ... -
sql server 2005 输出表的函數用法
2012-12-25 16:02 836view sourceprint? 01 --sql ser ... -
SQL杂谈
2012-12-14 17:33 7511、如何用convert什么的把带有时分秒的日期转为时分秒都0 ... -
用FOR XML PATH将查询结果以XML输出
2012-09-20 17:54 1043本文从此而来 http://www.cnblogs.com/d ... -
left join on and
2012-09-20 10:23 895数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临 ... -
筛选索引简单使用
2012-08-17 11:29 1157对于在强制实施数据完整性时的一种常见需求,也可以用筛选索引来解 ... -
排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句
2012-08-10 10:36 6632--在部门内新水排名(如果有相同名次,用dense_rank) ... -
SQL SERVER 中行列转换 PIVOT UNPIVO
2012-08-18 15:34 2337PIVOT用于将列值旋转为列名、同时执行聚合运算(即行转列), ... -
SQL Server 2008语句大全完整版
2012-08-09 10:39 1393--======================== ... -
Not Exists练习
2012-07-23 14:40 893IF OBJECT_ID(N'a') IS NOT NU ... -
Exists练习查找最小缺失值(Missing Value)
2012-07-17 09:34 1001第一种方法 USE tempdb; GO IF OBJE ...
相关推荐
`commit()`是同步操作,`apply()`是异步的,但通常推荐使用`apply()`,因为它不会阻塞UI线程。 示例代码: ```java SharedPreferences prefs = getSharedPreferences("my_prefs", MODE_PRIVATE); ...
作用都是一样的,简单来说就是改变当前使用该方法的对象中的this指向,指向调用方法中的thisObj对象二者的区别(第一个参数是相同的)就是call方法中传入的参数是是一个个列举出来的,而apply方法中的参数二是一个...
下面将详细介绍如何在Idea中配置Activiti以及通过一个简单的员工请假、老板审批流程来展示其使用方法。 首先,我们需要准备以下环境: 1. 安装IntelliJ IDEA 2. 引入Activiti相关的依赖库,通常我们会在Maven或...
以下是一个简单的`SharedPreferences`使用示例,用于记录用户的登录状态: ```java // 获取SharedPreferences对象 SharedPreferences sharedPreferences = getSharedPreferences("LoginStatus", MODE_PRIVATE); //...
例如,在一个简单的继承实现中,可以这样使用call方法: ```javascript function Class1() { this.showTxt = function(txt) { alert(txt); } } function Class2() { Class1.call(this); } var c2 = new ...
在Android开发中,SharedPreference是一种轻量级的数据存储机制,用于保存应用的简单键值对数据,如用户偏好设置或一些临时状态。在本实例中,我们主要关注如何使用SharedPreference来实现登录界面记住密码的功能。 ...
`_apply`方法实现了这个功能,同样改变`this`值并执行函数,但使用`...args`来展开数组参数。 ```javascript Function.prototype._apply = function(obj,arg){ var me = this; var k = Symbol("test"); obj[k]...
x = x.apply(lambda x: ((x - np.min(x)) / (np.max(x) - np.min(x)))) rows, cols = x.shape k = 1.0 / math.log(rows) lnf = np.zeros((rows, cols)) for i in range(rows): for j in range(cols): if x....
- **举例**:绘制简单的二维函数图像。 - **数据集合的图形**:根据数据集合绘制图形。 - **二维参数作图**:使用参数表示图形。 - **二维图形元素**:包括点、线、面等基本元素。 - **图形的样式** - **图形...
假设有一个简单的局域网环境,包含两台路由器R1和R2以及一台三层交换机S1(即H3C S7500E)。其中,R1和R2分别连接两个不同的ISP,目的是实现基于源IP地址的策略路由选择,以达到负载均衡的目的。 - **R1** 的IP地址...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! ECSHOP快递物流单号查询插件安装方法 第1步:申请...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...
另有全球各国邮局邮政、国内国际小包等接口查询, 现已很好的整合在ECSHOP里,只要简单三步即可实现SHOPEX商城用户实时查看订单物流信息,有效的增加了客户体验! 安装方法 第1步:申请授权KEY 本插件采用...