SQL Exists运算符
EXISTS 运算符是一个逻辑运算符,用于检查子查询是否返回任何行。 如果子查询返回一行或多行,则 EXISTS 运算符返回 TRUE 。
以下是SQL Server EXISTS 运算符的语法:
EXISTS ( subquery)
在此语法中,子查询仅是 SELECT 语句。子查询返回行后, EXISTS 运算符返回 TRUE 并立即停止处理。
请注意,即使子查询返回 NULL 值, EXISTS 运算符也会计算为 TRUE
- 带子查询的EXISTS返回NULL示例
以下示例返回 customers 表中的所有行:
SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
EXISTS (SELECT NULL)
ORDER BY
first_name,
last_name;
在此示例中,子查询返回包含 NULL 的结果集,这也导致 EXISTS 运算符计算为 TRUE 。
1.2. EXISTS带有相关子查询示例
以下示例查找已下过两个以上订单的所有客户:
SELECT
customer_id,
first_name, last_name
FROM
sales.customers c
WHERE
EXISTS (SELECT COUNT (*)FROM
sales.orders o
WHERE
customer_id = c.customer_id
GROUP BY
customer_id
HAVING COUNT (*) > 2 )
ORDER BY
first_name, last_name;
如果客户下达的订单数小于或等于 2 ,则子查询返回一个空结果集,该结果集导致 EXISTS 运算符计算 为 FALSE 。 根据 EXISTS 运算符的结果,客户是否包含在结果集中。
1.3. EXISTS 与 IN示例
以下语句使用 IN 运算符查找城市为 San Jose 的客户订单:
SELECT * FROM
sales.orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
sales.customers
WHERE
city = 'San Jose' )
ORDER BY
customer_id,
order_date;
以下语句使用返回相同结果的 EXISTS 运算符:
SELECT * FROM
sales.orders o
WHERE EXISTS (
SELECT
customer_id
FROM
sales.customers c
WHERE
o.customer_id = c.customer_id
AND
city = 'San Jose'
)
ORDER BY
o.customer_id,
order_date;
SQL中EXISTS与IN的使用及效率
EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引。但要看实际情 况具体使用:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。当A表数据与B表 数据一样大时,in与exists效率差不多,可任选一个使用。
以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!
SQL Exists运算符相关推荐
- sql exists_SQL Exists运算符–终极指南
sql exists Hey, folks! Hope you all are doing well. In this article, we will be focusing on SQL Exis ...
- 【SQL基础-2】SQL常用运算符及通配符
目录 1 常用运算符 1.1 比较运算符 1.2 BETWEEN范围运算符 1.2.1 当范围为日期时 1.2.2 当范围为字符时 1.3 IN列举运算符 1.4 NOT & AND & ...
- sql算术运算符_SQL运算符教程–按位,比较,算术和逻辑运算符查询示例
sql算术运算符 At its core, the internet and all its applications are just data. 互联网及其所有应用程序的核心只是数据. Every ...
- ORACLE SQL SET运算符
** ORACLE SQL SET运算符 ** 开发工具与关键技术:Oracle sql*plus PLSQL Developer 作者:何任贤 撰写时间:2019年01月01日 SET运算符,主要是 ...
- sql 两个表列包含_Oracle数据库扩展语言PL/SQL之运算符
[本文详细介绍了Oracle数据库扩展语言PL/SQL的运算符,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 运算符是一个符号,告诉编译器执行特定的数学或逻辑操作. PL/SQL 语言有丰富的内置 ...
- sql算术运算符_SQL中的算术运算符
sql算术运算符 SQL | 算术运算符 (SQL | Arithmetic Operators) Different number-crunching administrators are util ...
- sql server运算符_SQL Server执行计划中SELECT运算符的主要概念
sql server运算符 One of the main responsibilities of a database administrator is query tuning and troub ...
- sql server运算符_了解SQL Server中集合理论与集合运算符之间的相互作用
sql server运算符 In this article, we will describe the relation between the Set Theory and SQL Server S ...
- SQL UNION运算符
SQL UNION运算符 UNION运算符用于组合两个或更多SELECT语句的结果集,而不返回任何重复的行. UNION中的每个SELECT语句必须具有相同的列数 这些列也必须具有相似的数据类型 每个 ...
最新文章
- 十分钟成为 Contributor 系列 | 为 TiDB 重构 built-in 函数
- lisp 任意点 曲线距离_奇怪的知识增加了:把标准形式的双曲线旋转来解决问题...
- java List及其实现类
- Django的View(视图)
- 二叉树的遍历(算法导论第三版12.1-4)(包含先序遍历,后序遍历和中序遍历)
- Tensorflow 卷积神经网络(三)池化与采样
- java拦截器和过滤器的区别_拦截器和过滤器的区别
- Java字符流拷贝/复制文本文件,字节流拷贝文本文件乱码,很经典简便
- Qt编写可视化大屏电子看板系统2-配色方案
- del在php中什么意思,delete键是什么意思
- Indexes and Indexing
- linux 终止作业任务命令,Linux中作业控制命令
- 【SSL_1715】计算面积
- 【一级考试专题-1】整数和均值
- STM32CubeMX学习笔记(22)——CRC接口使用
- play-framework的安装配置(OS X和windows版)
- gocolly-OnResponse的使用(3)
- 【Python游戏】Python实现一个Q版泡泡堂小游戏 | 附带源码
- PHPCMS系统使用的弹出窗口插件artDialog
- 用java单源最短路径问题_java 单源最短路径问题