При работе с данными часто приходится их обрабатывать (преобразовывать к нужному виду): выделить в строке некоторую подстроку, удалить ведущие и заключительные пробелы, округлить число, вычислить квадратный корень, определить текущее время и т. п. В SQL имеются следующие три типа функций:
• строковые функции;
• числовые функции;
• функции даты-времени.
Строковые функции принимают в качестве параметра строку и возвращают после ее обработки строку или NULL.
• SUBSTRING (строка FROM начало [FOR длина]) — возвращает подстроку, получающуюся из строки, которая указана в качестве параметра строка. Подстрока начинается с символа, порядковый номер которого указан в параметре начало, и имеет длину, указанную в параметре длина. Нумерация символов строки ведется слева направо, начиная с 1. Квадратные скобки здесь указывают лишь на то, что заключенное в них выражение не является обязательным. Если выражение FOR длина не используется, то возвращается подстрока от начало и до конца исходной строки. Значения параметров начало и длина должны выбираться так, чтобы искомая подстрока действительно находилась внутри исходной строки. В противном случае функция SUBSTRING вернет NULL.
Например:
SUBSTRING ('Дорогая Маша!' FROM 9 FOR 4) — возвращает 'Маша';
SUBSTRING ('Дорогая Маша! ' FROM 9) —возвращает 'Маша! ';
SUBSTRING('Дорогая Маша! ' FROM 15) —возвращает NULL.
Использовать эту функцию в SQL-выражении можно, например, так:
SELECT * FROM Клиенты
WHERE SUBSTRING(Регион FROM 1 FOR 5) = 'Север';
• UPPER (строка) — переводит все символы указанной в параметре строки в верхний регистр.
• LOWER (строка) — переводит все символы указанной в параметре строки в нижний регистр.
• TRIM (LEADING | TRAILING | BOTH ['символ'] FROM строка) — удаляет ведущие (LEADING), заключительные (TRAILING) или те и другие (BOTH) символы из строки. По умолчанию удаляемым символом является пробел (' '), поэтому его можно не указывать. Чаще всего эта функция используется именно для удаления пробелов.
Например:
TRIM (LEADING ' ' FROM 'город Санкт-Петербург') вращает ' город Санкт-Петербург ';
TRIM(TRALING ' ' FROM 'город Санкт-Петербург') возвращает 'город Санкт-Петербург';
TRIM (BOTH ' ' FROM ' город Санкт-Петербург ') — возвращает 'город Санкт-Петербург';
TRIM(BOTH FROM ' город Санкт-Петербург ') — возвращает 'город Санкт-Петербург';
TRIM(BOTH 'г' FROM 'город Санкт-Петербург') — возвращает 'ород Санкт-Петербур'.
Среди этих функций наиболее часто используемые - SUBSTRING() И TRIM().