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运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!