nvl oracle что это

Введение в Oracle 10g. Часть 4

Введение

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

Функция NVL

Функция NVL, как правило, применяется чаще всего. Функция получает два параметра: NVL(expr1, expr2). Если первый параметр expr1 не равен NULL, то функция возвращает его значение. Если первый параметр NULL, то вместо него функция возвращает значение второго параметра expr2.

Рассмотрим практический пример. Поле COMM в таблице EMP может содержать значения NULL. При выполнении запроса вида:

SELECT EMPNO, ENAME, COMM, NVL(COMM, 0) NVL_COMM

FROM SCOTT.EMP

значение NULL будет заменено на ноль. Обратите внимание на то, что в случае формирования значения при помощи функции ему назначается псевдоним. Результаты запроса будут иметь вид:

EMPNOENAMECOMMNVL_COMM
7369SMITH0
7499ALLEN300300
7521WARD500500
7566JONES0
7654MARTIN14001400
7698BLAKE0
7782CLARK0
7839KING0
7844TURNER00
7900JAMES0
7902FORD0
7934MILLER0
nvl oracle что это. Смотреть фото nvl oracle что это. Смотреть картинку nvl oracle что это. Картинка про nvl oracle что это. Фото nvl oracle что этоnvl oracle что это. Смотреть фото nvl oracle что это. Смотреть картинку nvl oracle что это. Картинка про nvl oracle что это. Фото nvl oracle что это

Числовые функции

В Oracle предусмотрен ряд встроенных функций для работы с числами. Их не очень много, поэтому рассмотрим их все.

Функция ABS(n)

Функция ABS возвращает абсолютное значение числа. Например:

SELECT ABS(100) X1, ABS(-100) X2, ABS(-100.2) X3

FROM DUAL

X1X2X3
100100100,2

Функция CEIL(n)

Функция CEIL возвращает наименьшее целое, большее или равное переданному в качестве параметра числу n. Например:

FROM DUAL

X1X2X3X4
100-100101100

Функция FLOOR(n)

Функция FLOOR возвращает наибольшее целое, меньшее или равное переданному в качестве параметра числу n. Например:

SELECT FLOOR(100.22) X1, FLOOR(-100.22) X2,

FLOOR(100.99) X3, FLOOR(100.01) X4

FROM DUAL

X1X2X3X4
100-101100100

Функция TRUNC(n [,m])

Функция TRUNC возвращает число n, усеченное до m знаков после десятичной точки. Параметр m может не указываться – в этом случае n усекается до целого.

SELECT TRUNC(100.25678) X1, TRUNC(-100.25678) X2, TRUNC(100.99) X3,

TRUNC(100.25678, 2) X4

FROM DUAL

X1X2X3X4
100-100100100,25

Функция ROUND(n [,m])

Функция ROUND возвращает число n, округленное до m знаков после десятичной точки по правилам математического округления. Параметр m может не указываться — в этом случае n округляется до целого.

SELECT ROUND(100.25678) X1, ROUND(100.5) X2, ROUND(100.99) X3, ROUND(100.25678, 2) X4

FROM DUAL

X1X2X3X4
100101101100,26

Функция SIGN(n)

SELECT SIGN(100.22) X1, SIGN(-100.22) X2, SIGN(0) X3

FROM DUAL

Функция MOD(n, m)

Функция MOD возвращает от деления n на m. Например:

SELECT MOD(10, 3) X1, MOD(10, 2) X2, MOD(100, 0) X3

FROM DUAL

X1X2X3
10100

Интересной особенностью данной функции является возможность передачи m равного нулю — при этом не возникает ошибки деления на 0.

Функция POWER(n, m)

Функция POWER возводит число n в степень m. Степень может быть дробной и отрицательной, что существенно расширяет возможности данной функции.

SELECT POWER(10, 2) X1, POWER(100, 1/2) X2,

FROM DUAL

X1X2X3X4
10010100,1

В некоторых случаях при вызове данной функции может возникнуть исключительная ситуация. Например:

SELECT POWER(-100, 1/2) X2

FROM DUAL

В данном случае производится попытка вычисления квадратного корня от отрицательного числа, что приведет к возникновению ошибки ORA-01428 «Аргумент вне диапазона».

Функция SQRT(n)

Данная функция возвращает квадратный корень от числа n. Например:

SELECT SQRT(100) X

FROM DUAL

Функции EXP(n) и LN(n)

Функция EXP возводит e в степень n, а функция LN вычисляет натуральный логарифм от n (при этом n должно быть больше нуля). Пример:

SELECT EXP(2) X1, LN(1) X2, LN(EXP(2)) X3

FROM DUAL

X1X2X3
2,7182818284590502

Попытка передать функции LN отрицательное значение приводит к возникновению ошибки ORA-1428.

Функция LOG(n, m)

Функция LOG производит вычисление логарифма m по основанию n. Пример:

SELECT LOG(2, 8) X1, LOG(10, 100) X2

FROM DUAL

Тригонометрические функции

Oracle поддерживает вычисление основных тригонометрических функций:

SIN(n) — синус n (где n — угол в радианах)

COS(n) — косинус n (где n — угол в радианах)

TAN(n) — тангенс n (где n — угол в радианах)

SINH(n) — гиперболический синус n

COSH(n) — гиперболический косинус n

TANH(n) — гиперболический тангенс n

SELECT SIN(0) X1, COS(0) X2, TAN(0) X3

FROM DUAL

Заключение

Итак, мы рассмотрели все основные встроенные функции Oracle, предназначенные для работы с числовой информацией. В следующей статье мы будем изучать функции для работы со строками и датами.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *