Основы проектирования реляционных баз данных

         

Функции обработки строк


SQL предоставляет вам широкий набор функций для манипулирования со строковыми данными (конкатенация строк, CHR, LENGTH, INSTR и другие). Список основных функций для обработки строковых данных приведен в таблице 8.3.

Таблица 8.3. Функции SQL для обработки строк

ФункцияОписание
CHR(N)Возвращает символ ASCII кода для десятичного кода N
ASCII(S)Возвращает десятичный ASCII код первого символа строки
INSTR(S2.S1.pos[,N]Возвращает позицию строки S1 в строке S2 большую или равную pos.N - число вхождений
LENGHT(S)Возвращает длину строки
LOWER(S)Заменяет все символы строки на прописные символы
INITCAP(S)Устанавливает первый символ каждого слова в строке на заглавный, а остальные символы каждого слова - на прописные
SUBSTR(S,pos,[,len])Выделяетв строке S подстроку длиной len, начиная с позиции pos
UPPER(S)Преобразует прописные букцвы в строке на заглавные буквы
LPAD(S,N[,A])Возвращает строку S, дополненную слева симолами A до числа символов N. Символ - наполнитель по умолчанию - пробел
Rpad(S,N[,A])Возвращает строку S, дополненную справа симолами A до числа символов N. Символ - наполнитель по умолчанию - пробел
LTRIM(S,[S1])Возвращает усеченную слева строку S. Символы удаляются до тех пор, пока удаляемый символ входит в строку - шаблон S1 (по умолчанию - пробел)
RTRIM(S,[S1])Возвращает усеченную справа строку S. Символы удаляются до тех пор, пока удаляемый символ входит в строку - шаблон S1 (по умолчанию - пробел
TRANSLATE(S,S1,S2)Возвращает строку S, в которой все вхождения строки S1 замещены строкой S2. Если S1 <> S2, то символы, которым нет соответствия, исключаются из результирующей строки
REPLACE(S,S1,[,S2])Возвращает строку S, для которой все вхождения строки S1 замещены на подстроку S2. Если S2 не указано, то все вхождения подстроки S1 удаляются из результирующей строки
NVL(X,Y)Если Х есть NULL, то возвращает в Y либо строку, либо число, либо дату в зависимости от исходного типа Y

Названия одних и тех же функций могут отличаться в различных СУБД.
Так, например, функция СУБД Oracle SUBSTR(S, pos, [, len]) в СУБД SQLBase называется @SUBSTRING(S, pos, len). В СУБД SQLBase имеются функции, которых нет в СУБД Oracle (см. таблицу ниже, где приведен список таких функций).

Таблица 8.4. Строковые функции СУБД SQLBase, отличающиеся от строковых функций СУБД OracleФункцияОписание
@EXACT(S1,S2)Возвращает результат сравнения двух строк
@LEFT(S,len)Возвращает левую подстроку длиной len
LENGTH(S)Возвращает длину строки
@MID(S, pos, len)Возвращает подстроку указанной длины, начиная с позиции pos
@REPEAT(S,n)Повторяет строку S n раз
@REPLACE(S1,pos,len,S2)Замещает с позиции pos len символов в строке S2 символами строки S1
RIGHT(S,len)Возвращает правую подстроку S длиной len
@SCAN(S,pat)Возвращает позицию подстроки pat в строке S
@STRING(X,scale)Возвращает символьное представление числа с указанным масштабом scale
@TRIM(S)Удаляет пробелы в строке справа и слева
@VALUE(S)Преобразует символьное представление числа в числовое значение
Можно использовать функцию INITCAP, чтобы при получении списка имен служащих фамилии всегда начинались с заглавной буквы, а все остальные были прописными.

SELECT INITCAP(ENAME) FROM EMPLOYEE ORDER BY DEPNO;


Содержание раздела