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

Олег Зайцев

Введение

Функция NVL

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

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

Заключение

Введение

В предыдущей статье мы рассмотрели псевдонимы и псевдостолбцы, а также правила их использования в запросах. В настоящей статье мы продолжим рассмотрение 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 будет заменено на ноль. Обратите внимание на то, что в случае формирования значения при помощи функции ему назначается псевдоним. Результаты запроса будут иметь вид:

 

EMPNO ENAME COMM NVL_COMM
7369 SMITH   0
7499 ALLEN 300 300
7521 WARD 500 500
7566 JONES   0
7654 MARTIN 1400 1400
7698 BLAKE   0
7782 CLARK   0
7839 KING   0
7844 TURNER 0 0
7900 JAMES   0
7902 FORD   0
7934 MILLER   0
В начало В начало

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

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

Функция ABS(n)

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

 

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

FROM DUAL

 

X1 X2 X3
100 100 100,2

Функция CEIL(n)

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

 

SELECT CEIL(100) X1, CEIL(-100) X2, CEIL(100.2) X3 , CEIL(-100.2) X4

FROM DUAL

 

X1 X2 X3 X4
100 -100 101 100

Функция FLOOR(n)

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

 

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

FLOOR(100.99) X3, FLOOR(100.01) X4

FROM DUAL

 

X1 X2 X3 X4
100 -101 100 100

Функция 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

 

X1 X2 X3 X4
100 -100 100 100,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

 

X1 X2 X3 X4
100 101 101 100,26

Функция SIGN(n)

Функция SIGN определяет знак числа. Если n положительное, то функция возвращает 1. Если отрицательное — возвращается -1. Если равно нулю, то возвращается 0. Например:

 

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

FROM DUAL

 

X1 X2 X3
1 -1 0

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

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

 

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

FROM DUAL

 

X1 X2 X3
1 0 100

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

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

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

 

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

POWER(1000, 1/3) X3, POWER(1000, -1/3) X4

FROM DUAL

 

X1 X2 X3 X4
100 10 10 0,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

 

X1 X2 X3
2,71828182845905 0 2

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

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

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

 

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

FROM DUAL

 

X1 X2
3 2
В начало В начало

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

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

 

X1 X2 X3
0 1 0

В начало В начало

Заключение

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

КомпьютерПресс 8'2006

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует