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