OCP 071 -129 争议题

Q129

Examine the structure of the EMPLOYEES table. (Choose the best answer.)

You must display the details of employees who have manager with MANAGER_ID 100, who were hired in the past 6 months and who have salaries greater than 10000.

你必须展示 manager_id 是100号的, 过去180天内入职的  ,薪资大于10000元的那部分 员工的明细  。

如果答案是C  那么翻译应该是     包括两类,, 1  manager_id 是100的,收入过万 , 但入职时间可以是不限于3个月的 

                                                                            2 manage_id 可以不是100,但是收入过万的,并且近三个月内入职的。。。

 

 


A. SELECT last_name, hire_date, salary

FROM employees

WHERE salary > 10000

UNION ALL

SELECT last_name, hire_date, salary

FROM employees

WHERE manager_ID = (SELECT employee_id FROM employees WHERE employee_id = 100)

INTERSECT

SELECT last_name, hire_date, salary

FROM employees

WHERE hire_date > SYSDATE- 180;
B. SELECT last_name, hire_date, salary

FROM employees

WHERE manager_id = (SELECT employee_id FROM employees WHERE employee_id = 100)

UNION ALL

(SELECT last_name, hire_date, salary FROM employees

WHERE hire_date > SYSDATE -180

INTERSECT

SELECT last_name, hire_date, salary

FROM employees

WHERE salary > 10000);

C. SELECT last_name, hire_date, salary

FROM employees

WHERE manager_id = (SELECT employee_id FROM employees WHERE employee_id = '100')

UNION

SELECT last_name, hire_date, salary

FROM employees

WHERE hire_date > SYSDATE -180

INTERSECT

SELECT last_name, hire_date, salary

FROM employees

WHERE salary > 10000;

D. (SELECT last_name, hire_date, salary

FROM employees

WHERE salary > 10000

UNION ALL

SELECT last_name, hire_date, salary

FROM employees

WHERE manager_ID = (SELECT employee_id FROM employees WHERE employee_id = 100))

UNION

SELECT last_name, hire_date, salary

FROM employees

WHERE hire_date > SYSDATE -180;

 

答案解析:

这题的考点 是  union 、  union all 和  intersect

 

union 两个结果集并集操作,重复行只取一次,同时进行默认规则排序

union  和union all 的区别是 重复值不做过滤。。

intersect 是做两个结果集进行交集操作,重复行只取一次,同时进行默认规则的排序。

题意是是    做报表,列出  那些薪酬超过1万的那批人 ,这人中部分人领导的  employee id 是100号 。另外一部分工作时间超过180天的人。

我们假设 employee_id =100 的manager 名字是   “雷布斯”  ,我做了三个选项是 180天内入职的,并且两个的manage_id 是100的。。。另一个不是 ,并且 三个人的工资都大于10000元的。。

A选项 里。。 先把 工资大于10000万的和 领导是  “雷布斯”的人员做了 union all,   结果发现  工资没超过1万的,但领导是   “雷布斯”的那部分职员也进入了结果集合,,这个集合和入职超过180天的做交集。。那结果自然是不符合题意了,也被计入。。下图是参考示范结果。。(工作日期做了调整。)

对于B选项。。要注意有个括号。那如果有部分测试结果如下图,结果过滤不了

 

C选项演示。。结果只过滤了 salary 大于 10000的。

D选项测试结果如下, 这个选项最好排查,,先做union all    再做union   结果看到,,king都在结果里面了。。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值