提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:董玉霞|2022-04-26 11:40:36.710|阅读 122 次
概述:本文将介绍数据库管理工具Navicat for SQL Server中CROSS APPLY 和 OUTER APPLY 查询。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
本文将介绍数据库管理工具Navicat for SQL Server中CROSS APPLY 和 OUTER APPLY 查询。
Navicat for SQL Server 中的 JOIN 操作用于联接两个或多个表。但是,在 SQL Server 中,JOIN 操作不能用于将表与表值函数的输出联接起来,表值函数是以表的形式返回数据。为了连接两个表表达式,SQL Server 引入了 APPLY 运算符。在本篇文章中,我们将了解 APPLY 运算符与常规 JOIN 的不同之处。
SQL Server 的 APPLY 运算符有两种变体:CROSS APPLY 和 OUTER APPLY:
CROSS APPLY 运算符仅返回左表表达式(在其最终输出中)中与右表表达式匹配的那些行。 因此,CROSS APPLY 类似于 INNER JOIN,或者更准确地说,类似于具有相关子查询的 CROSS JOIN,其隐式联接条件为 1=1。
OUTER APPLY 运算符返回左表表达式中的所有行,而不管其与右表表达式的匹配情况。对于右表表达式中没有相应匹配项的那些行,它在右表表达式的列中返回 NULL 值。 因此,OUTER APPLY 等效于 LEFT OUTER JOIN。
尽管可以使用普通的 JOIN 编写相同的查询,但当右侧有一个表值表达式并且你希望为左侧表表达式中的每一行计算此表值表达式时,就需要使用 APPLY。此外,在某些情况下,使用 APPLY 运算符可以提高查询性能。
通过一些示例进一步探索 APPLY 运算符。
样本数据
在Navicat for SQL Server最新版本中执行查询以创建的两个新表。这是 Department 表的设计:
这是 Employee 表的设计:
在 Navicat 查询编辑器中执行以下 SQL 以填充表:
INSERT [Department] ([DepartmentID], [Name]) VALUES (1, N'Engineering') INSERT [Department] ([DepartmentID], [Name]) VALUES (2, N'Administration') INSERT [Department] ([DepartmentID], [Name]) VALUES (3, N'Sales') INSERT [Department] ([DepartmentID], [Name]) VALUES (4, N'Marketing') INSERT [Department] ([DepartmentID], [Name]) VALUES (5, N'Finance') GO INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (1, N'Orlando', N'Gee', 1 ) INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (2, N'Keith', N'Harris', 2 ) INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (3, N'Donna', N'Carreras', 3 ) INSERT [Employee] ([EmployeeID], [FirstName], [LastName], [DepartmentID]) VALUES (4, N'Janet', N'Gates', 3 )
这是一个由两部分组成的查询:第一个查询从 Department 表中选择数据,并使用 CROSS APPLY 为 Department 表的每条记录对 Employee 表求值;第二个查询只是将 Department 表与 Employee 表联接起来以产生相同的结果:
在本文介绍了 APPLY 运算符之后,在Navicat for SQL Server使用教程介绍CROSS APPLY 和 OUTER APPLY 查询方法的第 2 部分将概述使用 APPLY 和 JOIN 之间的区别,并会讲述 APPLY 的其他用途。
Navicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具,了解更多购买详情可联系慧都在线客服。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢