2.3.5.   Строковые функции

• ЕРАЕ) — дополнение строки слева ТРАТ) (<строка>,<длина>[,<подсгрока>])

• <строка> дополняется слева заданной в <подстроке> по­следовательностью символов до указанной <длины> (воз­можно, с повторением последовательности);

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

• если <длина> меньше длины <строки>, то исходная <строка> усекается слева до заданной <длины>.

• ЯРАХ) — дополнение строки справа RPAD (<строка>,<длина>[,<подстрока>])

* <строка> дополняется справа заданной в <подстроке> по­следовательностью символов до указанной <длины> (воз­можно, с повторением последовательности);

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

* если <длина> меньше длины <строки>,то исходная <строка> усекается справа до заданной <длины>.

* LTRIM — удаление левых граничных символов LTRIM (<строка>[,<подстрока>|)

* из <строки> удаляются слева символы, указанные в <под­строке>;

* если < подстрока > не указана, по умолчанию удаляются пробелы;

* в <строку> справа добавляется столько пробелов, сколько символов слева было удалено, то есть длина <строки> ос­тается неизменной.

* RTRIM — удаление правых граничных символов RTRIM (<строка>[,<подстрока>])

* из <строки> удаляются справа символы, указанные в <под­Строке>;

* если <подстрока> не указана, по умолчанию удаляются пробелы;

* в <строку> слева добавляется столько пробелов, сколько символов справа было удалено, то есть длина <строки> ос­тается неизменной.

Функции LTRIM и RTRIM рекомендуется использовать при на­писании условных выражений, в которых сравниваются текстовые строки. Дело в том, что наличие начальных или конечных пробе­лов в сравниваемых операндах может исказить результат сравнения.

Например, константы ' AAA' и 'AAA ' не равны друг другу.

* SUBSTR — выделение подстроки SUBSTR (<строка>,<начало>[,<количество>])

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

* если <количество> не задано, символы выбираются с <на­чала> и до конца <строки>;

* возвращается подстрока, содержащая число символов, за­данное параметром < количество >, либо число символов от позиции, заданной параметром <начало> до конца строки;

* если указанное <начало> превосходит длину <строки>, то возвращается строка, состоящая из пробелов. Длина этой строки будет равна заданному <количеству> или исходной длине <строки> (при не заданном < количестве >).

* DNSTR — поиск подстроки

INSTR (<строка>,<подстрока>[,< начало поиска>

[,<номер вхождения>]])

* <начало поиска> задает начальную позицию в строке для поиска <подстроки>. Если не задано, то по умолчанию принимается значение 1;

* <номер вхождения> задает порядковый номер искомой подстроки. Если не задан, то по умолчанию принимается значение 1;

* значимые выражения в <начале поиска> или в <номере вхождения > должны иметь беззнаковый целый тип или приводиться к этому типу;

* тип возвращаемого значения — INT;

функция возвращает позицию найденной подстроки.

* LENGTH — определение длины строки ьюгстн(<строка>)

* длина < строки >, тип возвращаемого значения — ЮТ;

* функция возвращает NULL, если < строка > имеет NULL-зна-чение.

Примеры запросов, использующих строковые функции

Результат запроса

SELECT LPAD   (SURNAME,    10,    Щ,   RPAD   (NAME,    10, *$•) FROM STUDENT

WHERE KURS = 3 AND STIPEND > 0;

будет выглядеть следующим образом:

 

 

@@@@Петров

Петр$$$$$$

@@@@Павлов

Андрей$$$$

@@@@@Дукин

Артем$$$$$

 

 

А запрос

SELECT SUBSTR(NAME,   1,   И   Ц'.' | SURNAME.   CITY,   LENGTH (CITY,) FROM STUDENT

WHERE KURS   IN(2,    3.   4)AND  STIPEND  > 0; выдаст результат:

 

CITY

 

П. Петров

Курск

5

С. Сидоров

Москва

6

О. Зайцева

Липецк

6

А. Лукин

Воронеж

7

А. Петров

NULL

NULL