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

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

LEADING указывает на то, что надо удалить указанную подстроку из начала строки, TRAILING – из конца строки, BOTH - из начала и конца строки. При использовании функции следует учитывать следующее:

1)    если LEADING, TRAILING или BOTH не указаны, то принимается BOTH по умолчанию;

2)    если <удаляемая_подстрока> не определена, то за нее принимается по умолчанию пустая строка;

3)    если LEADING, или TRAILING, или BOTH и/или <удаляемая_подстрока> указаны, то после слова FROM должно быть обязательно указано <строковое_выражение>, из которого удаляются символы;

4)    указание строки, из которой удаляются символы, после слова FROM не может быть использовано самостоятельно (если LEADING, TRAILING, BOTH и <удаляемая_подстрока> не указаны).

Например, для вывода данных из таблицы Street, указывая название улицы без слова "УЛИЦА", можно использовать следующий запрос: SELECT StreetCD,

TRIM (BOTH 'УЛИЦА' FROM StreetNM) AS Str_Name FROM Street;. Результат выполнения запроса представлен на рис. 3.23.

STREETCD

STR NAME

3

ВОЙКОВ ПЕРЕУЛОК

7

КУТУЗОВА

6

МОСКОВСКАЯ

8

МОСКОВСКОЕ ШОССЕ

4

ТАТАРСКАЯ

5

ГАГАРИНА

1

ЦИОЛКОВСКОГО

2

НОВАЯ

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

При указании удаляемой подстроки следует учитывать регистр символов (строчные или прописные буквы). Если в предыдущем примере вместо 'УЛИЦА' ввести 'улица', то запрос выдаст неверный результат, так как все названия улиц в таблице Street записаны в верхнем регистре символов.

Существуют функции LPAD и RPAD, которые дополняют строку аргумента слева (LPAD) или справа (RPAD) указанной последовательностью символов (<строка_заполнитель>) до заданного размера (длина). В случае если <строка_заполнитель> не указана, для дополнения используется пробел. Строка-заполнитель обрезается, когда результирующая строка достигает заданной длины. Функции имеют следующий формат:

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