SQLserver中的any和all运算符的用法
一,SQL Server Any 运算符
Any 是一个逻辑运算符 ,它将值与子查询返回的一组进行比较。any运算符必须要结合比较运算符使用,
>,>=,<,<=,=,<>开头,后面就是子查询
where 比较者 >any(子查询)
如果子查询不返回如何行,则条件计算结果为false,就是返回空的意思,进行不了比较。
如果子查询不返回零行,下面说明了any运算符与每个比较运算符一起使用的含义:
条件 | 含义 |
c = ANY (…) | c列中的值必须与集合中的一个或多个值匹配,以评估为true。 |
c != ANY (…) | c列中的值不能与集合中的一个或多个值匹配以评估为true。 |
c > ANY (…) | c列中的值必须大于要评估为true的集合中的最小值。 |
c < ANY (…) | c列中的值必须小于要评估为true的集合中的最大值。 |
c >= ANY (…) | c列中的值必须大于或等于要评估为true的集合中的最小值。 |
c <= ANY (…) | c列中的值必须小于或等于要评估为true的集合中的最大值。 |
示例:--29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。

二,SQL Server All 运算符
All是一个逻辑运算符,它将单个值与子查询返回的单例值进行比较。
all运算符必须要结合比较运算符使用,>,>=,<,<=,=,<>开头,后面就是子查询
where 比较者 >all(子查询)
注意:如果子查询不返回任何行。则where子句中的条件始终未true,假设子查询返回一行或多行,下表
说明名了ALL运算符的含义:
条件 | 含义 |
c > ALL(…) | c列中的值必须大于要评估为true的集合中的最大值。 |
c >= ALL(…) | c列中的值必须大于或等于要评估为true的集合中的最大值。 |
c < ALL(…) | c列中的值必须小于要评估为true的集合中的最小值。 |
c <= ALL(…) | c列中的值必须小于或等于要评估为true的集合中的最小值。 |
c <> ALL(…) | c列中的值不得等于要评估为true的集合中的任何值。 |
c = ALL(…) | c列中的值必须等于要评估为true的集合中的任何值。 |
示例:--30、查询选修编号为“3-105”课程且成绩高于选修编号为“3-245”课程的同学的Cno、Sno,Degree.

总结:any和all的区别
他们又被称为多行子查询,一般是用于查询比较返回多行的数据,这两个运算符都是用于子查询,
any是任意,all是任何。这个任意和任何怎么理解呢?
好比如上面any和all的两个例子,都是大于号,any要大于子查询里面的最小一个,因为任一条数据满足外层查询都会被返回。all要大于里面最大的一个,任何就是包括集合里所有的数据。这就是我所理解的any和all。
到此这篇关于SQLserver中的any和all运算符的用法的文章就介绍到这了,更多相关SQLserver any和all运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞
在SQL Server 2000中,这个命令阻止事务日志截断将会导致日志不正常增长的相关问题,但对于SQL Server 2005来说,这个命令就会导致快照相关的问题(具体请往下看)。2013-01-01
sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符
sql中比较一个字符串中是否含有另一个字符串中的一个字符的实现代码,需要的朋友可以参考下。2010-09-09
SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库。2009-07-07
安装sql server2008后再安装sql 2005找不到本地服务器的解决方法
这篇文章主要介绍了安装sql server2008后再安装sql 2005找不到本地服务器的解决方法,需要的朋友可以参考下2015-01-01


最新评论