Основы проектирования реляционных баз данных

         

Специальные функции


SQL обеспечивает набор специальных функций для преобразований значений колонок. Список таких функций приведен в таблице 8.5.

Таблица 8.5. Специальные функции

ФункцияОписание
DECODE(E,S1,R1,S2,R2,…,[def])Если E соответствует Si, то возвращается Ri, в противном случае - def или NULL, если умолчание не задано
TO_NUMBER(S)Возвращает результат преобразования строки S в аргумент типа NUMBER
TO_CHAR(X[,F])Возвращает результат преобразования строки S в аргумент типа DATE согласно заданному формату даты F
TO_DATE(S[,F])Возвращает результат преобразования значения параметра S символьного типа в тип DATE

В таблице EMPLOYEE для каждого служащего можно ввести признак пола - добавить колонку SEX типа CHAR(1) (0 - мужской, 1 - женский). Допустим, что вам нужен список служащих, в котором требуется разделение их по признаку пола с указанием его в числовом формате; тогда можно задать такую команду:

SELECT ENAME, LNAME, AGE, 'Пол:', TO_NUMBER(SEX) FROM EMPLOYEE ORDER BY 5;

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

SELECT ENAME, DECODE(DEPNO, 10, 'Дрягин', 20,'Жиляева', 30,' Коротков', 'не имеет') FROM EMPLOYEE ORDER BY ENAME;

Предположим, что руководитель организации имеет неопределенное значение колонки DEPNO и, следовательно, для него будет работать умолчание, предусмотренное в DECODE.



Содержание раздела