any表示任意一个,all表示所有的。举例如下:
1、创建测试表,create table test_any_all(id number)
2、在test_any_all 表中插入测试数据;
insert into test_any_all values(5)
insert into test_any_all values(15)
insert into test_any_all values(25)
insert into test_any_all values(30)
commit
3、查询表中全量数据;select t.*, rowid from test_any_all t;
4、编写语句,用any表达式,查询表中大于10,18,28三个数字中任意一个数据即可;
select t.*, rowid sec from test_any_all t where id >any(10,18,28)
5、编写语句,用all表达式,查询表中大于10,18,28三个数字中最大数字的所有数据;
select t.*, rowid sec from test_any_all t where id >all(10,18,28)
你这样理解是走入自己这个例子的误区了,any表示子查询的集合里有任何一个满足就返回true,all表示全部都满足才返回true,显然他们是不同的用法和意义。比如你用age>any(15,16,22,21,17,18,19)来判断一个人年龄是否大于集合里的所有人就是错误的,这里应该用all。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)