Функции обработки строк
SQL предоставляет вам широкий набор функций для манипулирования со строковыми данными (конкатенация строк, CHR, LENGTH, INSTR и другие). Список основных функций для обработки строковых данных приведен в таблице 8.3.
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 (см. таблицу ниже, где приведен список таких функций).
@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) | Преобразует символьное представление числа в числовое значение |
SELECT INITCAP(ENAME) FROM EMPLOYEE ORDER BY DEPNO;