【发布时间】:2021-11-13 18:23:00
【问题描述】:
我有一个表 emp1,其中我只对工资低于 2000 且现在工资高于 2000 的员工感兴趣。这是只有一个人病房的情况,如下所示。我用 intersect 准备了答案,但想知道是否有更有效的方法。请让我知道这对我有很大帮助
(选择 empno,deptno 来自emp1 其中sal2000 按 empno,hiredate,deptno 分组 )
谢谢
【问题讨论】:
-
先把问题搞清楚。在您的代码中,您会找到最低工资为或小于 2000 且最高工资为或大于 2000 的员工。这与“加入”工资 2000 不同,除非 你假设(这是一个强有力的假设,你应该说明,如果你做出这样的假设)工资总是随着时间的推移而上升,而不是下降。所以 - 请澄清一下。
-
谢谢 mathguy 让我这么说我想要工资低于 2000 并且现在工资高于 2500 的人。因为在我的 emp 表中只有一个人满足这个条件,所以我希望员工人数为 1。如果有意义,请告诉我,其他人的薪水也超过 2500,但他们已经加入了该薪水,所以我不考虑他们。
-
好的,所以您当前的查询不会这样做 - 它只查找“最低”和“最高”工资,而不是“最早”和“最近”。
标签: oracle set operators intersect