亲宝软件园·资讯

展开

SQLserver中的any和all运算符的用法

打不完的代码 人气:0

一,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。

加载全部内容

相关教程
猜你喜欢
用户评论