Considere la tabla empleado (empId, nombre, departamento, salario) y las dos consultas Q1, Q2 a continuación. Suponiendo que el departamento 5 tiene más de un empleado, y queremos encontrar los empleados que obtienen un salario más alto que cualquiera en el departamento 5, ¿cuál de las afirmaciones es VERDADERA para cualquier tabla de empleados arbitraria?
Q1 : Select e.empId From employee e Where not exists (Select * From employee s where s.department = “5” and s.salary >=e.salary) Q2 : Select e.empId From employee e Where e.salary > Any (Select distinct salary From employee s Where s.department = “5”)
(A) Q1 es la consulta correcta
(B) Q2 es la consulta correcta
(C) Tanto Q1 como Q2 producen la misma respuesta.
(D) Ni Q1 ni Q2 son la consulta correcta
Respuesta: (A)
Explicación: Primero tenga en cuenta que preguntaron por Cualquiera (= Todos) no por Cualquiera .
Aquí, Todos significa todo el grupo.
Cualquiera significa todo o cualquier parte del grupo.
Deje que el empleado (empId, nombre, departamento, salario) tenga la siguiente instancia.
empId nombre departamento salario
———————————-
e1 ------- A-------- 1---------10000 e2 -------B ------- 5 ---------5000 e3 -------C ------- 5----------7000 e4 -------D ------- 2----------2000 e5 -------E ------- 3----------6000
Ahora el resultado real debe contener empId: e1, e3 y e5 (porque tienen un salario mayor que cualquier empleado en el departamento ‘5’)
——————————————————–
Ahora P1:
Nota: EXISTE (conjunto vacío) da FALSO y NO EXISTE (conjunto vacío) da VERDADERO.
Select e.empId From employee e Where not exists (Select * From employee s where s.department = “5” and s.salary >=e.salary)
Q1 dará como resultado solo empId e1.
———————————————————
mientras que Q2:
Select e.empId From employee e Where e.salary > Any (Select distinct salary From employee s Where s.department = “5”)
Q2 dará como resultado empId e1, e3 y e5.
——————————————————–
Por lo tanto, Q1 es la consulta correcta.
Tenga en cuenta que si usamos ALL en lugar de Any en la segunda consulta, esto será correcto.
La opción (A) es correcta.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA