Рассмотрим таблицу сотрудник (empId, имя, отдел, зарплата) и два запроса Q1, Q2 ниже. Предполагая, что в отделе 5 работает более одного сотрудника, и мы хотим найти сотрудников, которые получают более высокую зарплату, чем кто-либо в отделе 5, какое из утверждений является ИСТИННЫМ для любой произвольной таблицы сотрудников?
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 правильный запрос
(B) Q2 — правильный запрос
(C) Q1 и Q2 дают одинаковый ответ.
(D) Ни Q1, ни Q2 не являются правильным запросом
Ответ: (А)
Объяснение: Сначала обратите внимание, что они попросили Anyone (= All), а не Any .
Здесь каждый означает всю группу.
Любой означает всю или любую часть группы.
Пусть сотрудник (empId, имя, отдел, зарплата) имеет следующий экземпляр.
Название отдела зарплаты
————
e1 ------- A-------- 1---------10000 e2 -------B ------- 5 ---------5000 e3 -------C ------- 5----------7000 e4 -------D ------- 2----------2000 e5 -------E ------- 3----------6000
Теперь фактический результат должен содержать empId: e1, e3 и e5 (потому что у них зарплата больше, чем у любого сотрудника отдела '5')
——————-
Теперь Q1:
Примечание: EXISTS (пустой набор) дает FALSE, а NOT EXISTS (пустой набор) дает TRUE.
Select e.empId From employee e Where not exists (Select * From employee s where s.department = “5” and s.salary >=e.salary)
Q1 приведет только к empId e1.
——————-
тогда как Q2:
Select e.empId From employee e Where e.salary > Any (Select distinct salary From employee s Where s.department = “5”)
Q2 приведет к empId e1, e3 и e5.
——————-
Следовательно, Q1 является правильным запросом.
Обратите внимание, что если мы используем ALL вместо Any во втором запросе, это будет правильно.
Вариант (А) правильный.
Тест на этот вопрос
Рекомендуемые посты:
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 52
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 65
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 64
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 53
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 54
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 55
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 56
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 57
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 58
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 59
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 60
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 61
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 62
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 63
- ВОРОТА | Sudo GATE 2020 Mock II (10 января 2019 года) | Вопрос 65
0.00 (0%) 0 votes