Основы программирования в СУБД Oracle. SQL+PL/SQL. - страница 21

Шрифт
Интервал



SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME,

DEPARTMENT_ID

FROM EMPLOYEES

WHERE DEPARTMENT_ID NOT IN (30,50,60,80,90,100,NULL);


Результат выполнения этого запроса не будет содержать строк.


Оператор IS NULL


Оператор IS NULL используется для определения строк с неопределенным значением заданного столбца.

Синтаксис:


{имя столбца} IS NULL


Данное выражение принимает значение TRUE, если значение проверяемого столба будет NULL.


Пример 2.28. Получить данные о сотрудниках, для которых неизвестен номер руководителя


SELECT employee_id, first_name, last_name, department_id

FROM Employees

WHERE manager_id IS NULL;



Пример 2.29. Вывести данные о сотрудниках, у которых не задан номер отдела


SELECT employee_id, first_name, last_name, department_id

FROM Employees

WHERE department_id IS NULL;



Можно также использовать разновидность данного оператора IS NOT NULL, который возвращает значение FALSE, если значение проверяемого столба будет NULL.


Пример 2.30. Получить данные о сотрудниках, для которых известен номер руководителя


SELECT employee_id, first_name, last_name, department_id

FROM Employees

WHERE manager_id IS NOT NULL;

Использование вычисляемых столбцов

В предложении SELECT, кроме списка столбцов таблиц участвующих в запросе, могут присутствовать вычисляемые столбцы, которые представляют собой выражения, состоящие из имен столбцов, констант, функций и арифметических операций. Значению вычисляемого поля можно присвоить имя. Для этого используется следующая конструкция:


{Выражение} As {псевдоним}


При вычислении выражения, содержащего несколько арифметических операций, Oracle выполняет операции с более высоким приоритетом перед выполнением операций с более низким приоритетом.

Сначала выполняются операции умножения и деления, которые имеют одинаковый приоритет, потом сложения и вычитания, которые также относительно друг друга имеют одинаковый приоритет.

Если операции в выражении имеют одинаковый приоритет, то их выполнение производится слева направо.

Рассмотрим примеры использования вычисляемых столбцов. Если значение столбца commission_pct в таблице Employees обозначает надбавку к зарплате как часть заработной платы, то общая зарплата с учетом комиссионных может быть вычислена с использованием выражения:


SALARY * (1 + COMMISSION_pct) As Total_Salary


Следует иметь в виду то, что у некоторых сотрудников значение столбца commission_pct равно NULL. А если один из элементов выражения равен NULL, то и все выражение будет иметь значение NULL. Данную проблему можно решить, используя специальные функции, которые мы рассмотрим позже.