Слайд 209/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Функция NVL
Функция NVL используется для
преобразования неопределенного значения (NULL) в действительное.
Синтаксис
NVL(выражение1, выражение2)
Выражение1 – исходное значение или выражение, которое может содержать неопределённое значение.
Выражение2 – конечное значение для преобразования неопределенного значения.
NVL – используется для преобразования любого типа, но тип возвращаемых донных всегда такой как у выражения1
NUMBER –
NVL(числовой_столбец,9)
DATE –
NVL(cтолбец_даты,’01-JAN-95’)
CHAR или VARCHAR2 – NVL(символьный_столбец, ‘Unavailable’)
Слайд 309/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции NVL
Для вычисления годового
дохода служащих, необходимо оклад умножить на 12, а затем прибавить сумму комиссионных.
Только для служащих с комиссионными, а у кого не определено значение комиссионных используем NVL.
Слайд 409/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции NVL2
Функция NVL2 проверяет
первое выражение. Если оно определено, тогда функция NVL2 возвращает второе выражение. Если первое выражение не определено, результатом работы будет третье выражение.
NVL2(выражение1,выражение2,выражение3)
Выражение1 – исходное значение или выражение
Выражение2 – возвращает значение, если выражение1 определено.
Выражение3 – возвращает значение, если выражение не определено.
В примере проверка значения commission_pst. Если есть значение, то ‘sal+comm’. Если нет, то ‘sal’.
Тип выражения 2 и 3 может быть любого типа, кроме LONG. Если типы данных выражения 2 и 3 различные, то сервер выражения3 преобразует в тип выражения2. Здесь преобразование не требуется.
Слайд 509/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции NULLIF
Функция NULLIF сравнивает
два выражения. Если они равны, функция возвращает неопределенное значение, если нет – первое выражение
NULLIF(выражение1, выражение2)
Выражение1 – исходное значение сравниваемое с выражением2.
Выражение2 – исходное значение сравниваемое с выражением1.
Слайд 609/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции COALESCE
Функция COALESCE возвращает
первое определенное выражение в списке.
COALESCE(выражение1, выражение2,…выражениеN)
Выражение1- возвращаемое выражение, если оно имеет определенное значение.
Выражение2 – возвращаемое выражение, если первое выражение не определено, а это выражение имеет определенное значение.
выражениеN – возвращаемое выражение, если предыдущее выражение не определено.
Слайд 709/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции COALESCE
В примере выводится
табельный номер менеджера, если он определен. Если табельный номер менеджера не задан выводится commission_pst, если они определены. Если ни табельный номер менеджера, ни комиссионные не установлены, выводится -1.
Слайд 809/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Условные выражения
Слайд 909/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Выражение CASE
Выражение CASE позволяет производить
логическую обработку оператора IF-THEN-ELSE в командах SQL, не вызывая процедуры.
В простом выражении CASE сервер Oracle ищет первую пару WHEN … THEN, в которой совпадают выражение и сравн_выражение и возвращает возвр_выражение. Если нет совпадений ни в одном из сравниваемых пар WHEN… THEN и есть предложение ELSE, возвращается else_выражение. Если такого предложения ELSE нет, возвращается неопределённое значение. Нельзя задавать литерал NULL для возвр_выражений и else_выражений. Все возвращаемые значения должны быть одного типа.
Слайд 1009/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование выражения CASE
В приведенной команде
SQL расшифровывается значение идентификатора должности JOB_ID. Если знечение JOB_ID совпадает с IT_PROG, оклад повышается на 10%; если JOB_ID равно ST_CLERK, повышение на 15%; если JOB_ID равно SA_REP, оклад увеличивается на 20%. Для всех остальных должностной оклад не изменяется.
Такую же команду можно написать с помощью функции DECODE.
Слайд 1109/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Функция DECODE
Функция DECODE действует подобно
IF-THEN-ELSE в различных языках. Функция DECODE расшифровывает столбец или выражение после сравнения его с каждым искомым значением варианта. Если выражение равно искомому значению, функция возвращает соответствующий результат.
Слайд 1209/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции DECODE
Слайд 1309/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Использование функции DECODE
Слайд 1409/06/2023
База данных Oracle 10g. Основы SQL. Часть I
Итоги