Соединения по неэквивалентности

Таблица JOB_GRADES определяет диапазон значений LOWEST_SAL и HIGHEST_SAL для каждого GRADE_LEVEL. Поэтому, столбец GRADE_LEVEL может использоваться, чтобы присвоить классы каждому сотруднику.

Соединения по неэквивалентности

Соединение по неэквивалентности является условием соединения, содержащим что-либо другое, кроме оператора равенства.

Отношение между таблицей EMPLOYEES и таблицей JOB_GRADES является примером соединения по неэквивалентности. Столбец SALARY в таблице EMPLOYEES располагается между значениями в столбцах LOWEST_SAL и HIGHEST_SAL таблицы JOB_GRADES. Поэтому, каждый сотрудник может классифицироваться на основе зарплаты. Отношение получается с использованием любого оператора, кроме оператора равенства (=).

Получение Записей с Соединениями по Неэквивалентности

Получение Записей с Соединениями по Неэквивалентности

Пример на рисунке создает соединение по неэквивалентности, чтобы оценить класс зарплаты сотрудника. Зарплата должна быть между любой парой низшего и высшего диапазонов зарплаты.

Важно отметить, что все сотрудники появляются в точности один раз, когда этот запрос выполняется. Никакой сотрудник не повторяется в списке. Есть две причины этого:

  • Ни одна из строк в таблице рабочей категории не содержит классы, которые перекрываются. Таким образом, значение зарплаты для сотрудника может находиться только между наименьшим и наибольшим значениями зарплаты одной из строк в таблице классов зарплаты.

  • Все зарплаты сотрудников лежат внутри пределов, которые обеспечиваются таблицей рабочей категории. Таким образом, никакой сотрудник не зарабатывает меньше, чем самое низкое значение, содержащееся в столбце LOWEST_SAL, или больше, чем самое высокое значение, содержащееся в столбце HIGHEST_SAL.

Отметьте: Другие условия (такие как <= и >=) могут использоваться, но BETWEEN является самым простым. Не забудьте указать сначала наименьшее значение, а потом наибольшее при использовании условия BETWEEN. Сервер Oracle преобразовывает условие BETWEEN к паре условий AND. Поэтому использование BETWEEN не имеет никаких выигрышей в производительности, но его следует использовать для логической простоты.

Табличные псевдонимы были определены в примере на рисунке по причинам производительности, а не из-за возможной неоднозначности.

Далее: Процесс Записи Журнала

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)