10.ANY运算符的子查询和ALL运算符的子查询
在子查询中经过会用到any运算符,表示跟子查询中的每一个值进行比较。在比较过程中,如果有一个值为真,则整个子查询结果集的比较值就为真。
all运算符与any不同在于,它需要所有比较结果都为真,整个子查询结果集才为真。
10.1 ANY运算符的子查询实例
要求:从表中查询除了语文成绩最低的人以为的所有人的各科成绩。
select * from Table_4
where 语文>any (select 语文 from Table_4)
执行结果:
10.2 比较运算符与any连用时的取值
比较运算符+any
所取子查询的结果
“>、>=、!
取最小值
“=”+“any”
取所有值,相当于in
“<>”+“any”
相当于not in
“”
+“any”
最大值
因为any表示认识一个的意思,比如大于,大于任何一个值即可,所以只要大于最小值就可以了。
10.3 ALL运算符的子查询实例
样例数据:
要求:查出分数scroe大于所有BEIJING地区学生score的学生信息
语句:
SELECT *
FROM [mydata].[dbo].[Table_1]
where score>all(select score from Table_1 where
address='BEIJING')
执行结果: