从emp table中选择任何薪水< 3000.please说明

时间:2014-05-25 16:23:33

标签: sql sql-server tsql

从emp表中选择任何薪水< 3000 ..请解释

正如我所看到的那样:

select * from emp  where sal > any(select sal from emp where sal < 3000);

但它似乎会返回所有工资大于最低工资的记录。

如果我错了,请纠正我。

4 个答案:

答案 0 :(得分:0)

你想要:

select * from emp where sal < any(select sal from emp where sal<3000)

结论:你把&#39;&gt;&#39;而不是&#39;&lt;&#39;

或者你只是想:

select sal from emp where sal < 3000

答案 1 :(得分:0)

任何语句都会返回所有那些对于其中至少一个由所提供的查询返回的条目进行比较评估的主语。因此,它返回除了没有较小薪水的条目

之外的所有条目

答案 2 :(得分:0)

是的,它将返回所有大于3000的记录,并且您正确无误。

  select * from emp where sal < 3000

答案 3 :(得分:0)

以下是 ANY 运算符的详细说明:

Comparison Operators Modified by ANY, SOME, or ALL

关键点:

“&gt; ALL(1,2,3)表示大于3”

“&gt; ANY表示大于至少一个值,即大于最小值。所以&gt; ANY(1,2,3)表示大于1。”