Сравнения столбцов

Сравнения нескольких столбцов с помощью подзапросов могут быть:

  • непарными сравнениями;

  • попарными сравнениями.

Попарные и непарные сравнения

Сравнения нескольких столбцов с помощью подзапросов могут быть непарными или попарными сравнениями. Если рассмотреть пример «Вывести сведения о сотрудниках, работающих в том же отделе и имеющих того же менеджера, что и Daniel», правильный результат получится с помощью следующего выражения:

     SELECT first_name, last_name, manager_id, department_id FROM empl_demo WHERE manager_id IN (SELECT manager_id         FROM empl_demo         WHERE first_name = ‘Daniel’) AND department_id IN (SELECT department_id         FROM empl_demo

        WHERE first_name = ‘Daniel’);

В таблице EMPL_DEMO имеется только один Даниель (Daniel Faviet), которым руководит менеджер 108 и который работает в отделе 100. Однако если подзапросы возвращают более одной строки, результат может быть неправильным. Например, если выполнить тот же запрос, но заменить «Daniel» на «John», получится неправильный результат. Это происходит из-за того, что важна комбинация параметров department_id и manager_id. Чтобы получить правильный результат для этого запроса, необходимо попарное сравнение.

Далее: Преимущества использования регулярных выражений

Похожие записи