SOME,ANY和ALL的区别
SOME 和ANY并没有上面较大的区别
SOME表示满足其中一个的意义,语义上类似于用OR串起来的比较从句
ANY也表示满足其中一个的意义,语义上也类似于用OR串起来的比较从句
区别在与ANY一般是用在非等于的比较关系中
实例:找出员工中只要比部门号为10的员工中任何一个员工的工资高的员工的姓名和工资
ANY,当然,如果非要使用SOME也没什么问题因为结果都是一样的,只是一般来讲SOME是用在等于号的比较从句中,实例如下
就得出的结果集来看,SOME与ANY并没有任何区别,事实也确实是这样的,他们的区别在于
SOME一般是用在等于号的语句中,所以上面更应该使用SOME虽然使用ANY也没错
而ANY就应该使用在非等于号中,比如,大于或是小于号的比较语句中
至于ALL 和子查询返回的所有值比较
嗯意思是ALL要跟返回的数据的所有值进行比较,并且都满足才正确
所以我们可以总结出
Some和ANY用法意义是一样的,仅在词法上有不同,都表示对子查询结果集中" 或 "的比较关系
, 而All 这是对子查询结果集中每一个结果 " 与 " 的关系 也就是说 Any 就是匹配集合中的任意一个就满足条件了;而
All 要跟所有的都比较,所有都满足以后才为真。
并且ALL有一个有意思的现象,就是使用了ALL进行筛选之后
数据就自动排序了,并且当你使用>时,是升序,当你使用<时是降序