一个SQL语言,关于ANY 和ALL
问题描述:
一个SQL语言,关于ANY 和ALL
Q1:SELECT a FROM R WHERE b>= ANY (SELECT d FROM S WHERE c>10);
Q2:SELECT a FROM R WHERE b>= ALL(SELECT d FROM S WHERE c>10);
(A) Q1和Q2产生的结果一样;
(B) Q1的结果总是包含Q2的结果;
(C) Q2的结果总是包含Q1的结果;
(D) Q1和Q2产生不同的结果;
答
A、不一样
B、不包含.当(SELECT d FROM S WHERE c>10)为空值时,选中全部记录.
C、不包含b>=ALL 需要全部满足所有项,b>=ANY只需满足最小的一项即可.
D、是正解.
应该是选中全部记录的。看下面的例子。