Программирование >>  Построение запросов sql 

1 ... 23 24 25 [ 26 ] 27 28 29 ... 101


Например, требуется вывести номера лицевых счетов абонентов и Fio, дополненные справа знаком звездочки (*) до длины 20 символов. Запрос будет выглядеть следующим образом:

SELECT AccountCD, RPAD (Fio, 20,*) FROM Abonent;.

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

ACCOUNTCD

RPAD

005488

АКСЕНОВ С.А.********

136169

ДЕНИСОВА Е.К.*******

015527

КОНЮХОВ В.С.********

080613

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

126112

МАРКОВА В.П.********

115705

МИНКО ЕВ ********

136159

СВИРИНА З.А.********

443069

СТАРОДУБЦЕВ Е.В.****

080270

ТИМОШКИНА Н.Г.******

443690

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

136160

ШМАКОВ С В *********

080047

ШУБИНА Т.П.*********

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

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

UPPER (<значение>),

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

Если набор символов и последовательность сортировки поддерживают преобразование в верхний регистр (например, WIN1251), то функция возвращает строку, в которой все символы преобразованы в верхний регистр. Строка имеет ту же длину, что и входное <значение>. Для наборов символов, не поддерживающих преобразование в верхний регистр (это, в частности, кодировка по умолчанию NONE), функция возвращает неизменное входное значение. Следующий запрос выводит названия услуг газоснабжения заглавными буквами:

SELECT UPPER(GazserviceNM) FROM Services;.

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

UPPER

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

ЗАЯВОЧН1И РЕМОНТ ГО

Рис. 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

443690

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

080613

ЛУКАТИНА РМ

080047

ШУБИНА Т.П.

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

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

Функция BIT LENGTH возвращает длину строки в битах, функция CHAR[ACTER] LENGTH - в символах, а функция OCTETLENGTH - в байтах. Эти три функции имеют одинаковый синтаксис: { BIT LENGTH CHAR[ACTER] LENGTH OCTET LENGTH } ( <строковое выражение> ).

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



SELECT GazServiceNM, CHAR LENGTH (GazServiceNM),

BIT LENGTH (GazServiceNM)

FROM Services;.

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

GAZSERVICENM

CHAR LENGTH

BIT LENGTH

Доставка газа

Заявочный ремонт ГО

Рис. 3.27. Результаты работы функций CHARLENGTH и BITLENGTH

Проверить, что тип VARCHAR предусматривает отбрасывание символов пробела можно помощью следующего использующего функции CHARLENGTH и TRIM: SELECT FIRST 3 FailureCD,

CHAR LENGTH (FailureNM), CHAR LENGTH (TRIM(FailureNM))

FROM Disrepair;.

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

автоматическое запроса,

FAILURECD

CHAR LENGTH

CHAR LENGTH1

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

Во втором столбце выводятся длины значений поля FailureNM в символах, а в третьем - длины значений этого же поля, но с удаленными символами пробелов. Можно заметить, что значения во втором и третьем столбце совпадают, так как тип поля FailureNM - VARCHAR(50) и символы пробелов автоматически отбрасываются.

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

Эти функции возвращают числовые значения на основании значений того же типа, заданных в аргументе. Числовые функции используются для обработки данных, а также в условиях поиска. Стандартные числовые функции СУБД Firebird 2.1 перечислены в табл. 3.2.



1 ... 23 24 25 [ 26 ] 27 28 29 ... 101

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика