ALL、SOME 和 ANY是SQL Server 三个比较运算符,其中 SOME 和 ANY 是等效的。
SOME 或 ANY:当表达式与子查询返回的至少一个值比较时满足比较条件, SOME 或 ANY 就返回 TRUE。否则返回 FALSE
ALL :当表达式与子查询返回的所有值比较时满足比较条件, ALL 就返回 TRUE。否则返回 FALSE
create table test01 ( num int)
insert into test01
select 5 union
select 6
create table test02 (num int)
insert into test02
select 2 union
select 3 union
select 6 union
select 7
select * from test01
select * from test02
– test01 表数据 5和 6
– test02表数据 2,3,6,7
select num as num1 from test02 where num > all(select num from test01 )
select num as num2 from test02 where num > any(select num from test01 )
select num as num3 from test02 where num > some(select num from test01)
select num as num4 from test02 where num = all (select num from test01 )
select num as num5 from test02 where num = any(select num from test01 )
select num as num6 from test02 where num = some(select num from test01)
select num as num7 from test02 where num <> all (select num from test01 )
select num as num8 from test02 where num <> any (select num from test01 )
select num as num9 from test02 where num <>some(select num from test01)
从上面测试结果看:= any 或 = some 与平时使用的 in 是等效的