Скалярные функции

  • Часть 1
  • | 2
  • | 3
  • | 4
  • | 5
  • | 6
  • | 7

SELECT UPPER(GazserviceNM) FROM Services;.

Результат выполнения запроса представлен на рис. 3.25.

UPPER

ДОСТАВКА ГАЗА

ЗАЯВОЧНЫЙ РЕМОНТ ГО

Рис. 3.25. Результат работы функции UPPER

Противоположной функцией является LOWER, которая преобразует символы строки в нижний регистр. Имеет следующий синтаксис:

все

LOWER (<значение>), где   <значение>   -   преобразуемый   столбец,   переменная   или   выражение строкового типа.

Для определения символа по известному коду используется функция ASCII_CHAR. Функция имеет следующий формат:

ASCII_CHAR (код_символа) .

Код должен лежать в диапазоне от 0 до 255. Следует учесть, что функция возвращает символ для кодировки NONE.

Рассмотренные выше строковые функции возвращают результат в виде строки символов. Существует также ряд строковых функций, которые в качестве результата возвращают числовое значение.

Для определения кода первого символа в указанной строке используется функция ASCII_VAL. Функция имеет следующий формат:

ASCII_VAL (<строка>) .

Функция вернет ноль, если указана пустая строка.

Для определения позиции первого вхождения заданной подстроки в строку можно использовать функцию POSITION. Функция имеет следующий формат:

POSITION (<подстрока> IN <строковое_выражение>) .

Функция возвращает ноль, если подстрока отсутствует внутри строки.

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

SELECT AccountCD, Fio FROM Abonent WHERE POSITION ('У' IN Fio) = 2;.

Результат выполнения запроса представлен на рис. 3.26.

ACCOUNTCD

FIO

443690

ТУЛУПОВА М.И.

080613

ЛУКАШИНА Р.М.

080047

ШУБИНА Т.П.

Рис. 3.26. Результат работы функции POSITION

Для определения размера строки применяются функции BIT_LENGTH, CHAR[ACTER]_LENGTH , OCTET_LENGTH .

Функция BIT_LENGTH возвращает длину строки в битах, функция CHAR[ACTER]_LENGTH - в символах, а функция OCTET_LENGTH - в байтах.

Эти три функции имеют одинаковый синтаксис:

{ BIT_LENGTH | CHAR[ACTER]_LENGTH | OCTET_LENGTH }

( <строковое_выражение> ).

Например, вывести названия услуг газоснабжения и длины полей названия в символах и в битах можно с помощью следующего запроса:

предыдущаяследующая