Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Строковые и символьные функции
Строковые и символьные функции
IB_UDF |
ASCII_CHAR(VALUE) |
Linux, Win32 |
Возвращает символ ASCII, соответствующий переданному ей десятичному значению |
Аргументы |
VALUE является столбцом, константой или выражением типа SMALLINT или INTEGER |
Возвращаемое значение |
Однобайтовый печатный или непечатный символ |
Пример |
Следующий оператор добавит в столбец символ перевода строки и возврата каретки для каждой строки внешней таблицы: UPDATE EXT_FILE SET EOL = ASCII_CHAR(13) || ASCII_CHAR(10); |
IB_UDF |
ASCII_VAL(VALUE) |
Linux, Win32 |
Возвращает значение ASCII, соответствующее переданному ей десятичному значению |
Аргументы |
VALUE является столбцом, константой или выражением типа CHAR |
Возвращаемое значение |
Целое десятичное значение ASCII |
Пример |
SELECT ASCII_VAL('&') AS ASC_NUM FROM RDB$DATABASE; |
IB_UDF |
LOWER(VALUE) |
Linux, Win32 |
Возвращает входную строку в виде символов в нижнем регистре. Работает только с символами ASCII |
Аргументы |
VALUE является столбцом или выражением, результатом вычисления которого является значение типа строки ASCII длиной 32 765 байт или меньше |
Возвращаемое значение |
CHAR(n) или VARCHAR(n) того же размера, что и входная строка |
Замечания |
Эта функция может получать и возвращать до 32 767 символов, ограничение на символьные строки Firebird |
Пример |
Следующий оператор вернет строку 'come and sit at my table': SELECT LOWER('Come and sit at MY TABLE') AS L_STRING FROM RDB$DATABASE; |
IB_UDF |
LPAD(VALUE, LENGTH, IN_CHAR) |
Linux, Win32 |
Присоединяет указанный символ IN CHAR к началу входной строки VALUE до тех пор, пока длина результирующей строки не станет равной заданному числу LENGTH |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки не длиннее, чем (32767 - LENGTH) байт. LENGTH: константа или выражение типа целого. IN CHAR: один символ, который используется в качестве символа заполнителя |
Возвращаемое значение |
CHAR(n) или VARCHAR(n), где n имеет значение входного аргумента LENGTH |
Замечания |
Эта функция может получать и возвращать до 32 767 символов, ограничение на символьные строки Firebird |
Пример |
Следующий оператор вернет строку ' ##########RHUBARB ': SELECT LPAD('RHUBARB', 17, '#') AS LPADDED_STRING FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также RPAD() |
IB_UDF |
LTRIM(VALUE) |
Linux, Win32 |
Удаляет начальные пробелы из входной строки |
Аргументы |
VALUE - столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 767 байт |
Возвращаемое значение |
CHAR(N) или VARCHAR(n) без начальных пробельных символов |
Замечания |
Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird |
Пример |
Следующий фрагмент триггера BEFORE INSERT будет удалять начальные пробелы из входной строки: NEW.CHARACTER_COLUMN = LTRIM(NEW.CHARACTER_COLUMN) ; |
Связанные или похожие функции |
См. также RTRIM(), F_RTRIM(), F_LRTRIM() |
FBUDF |
SRIGHT(VALUE, LENGTH) |
Linux, Win32 |
Возвращает подстроку для VALUE, являющуюся правой частью строки VALUE длиной LENGTH символов |
Аргументы |
Нет |
Возвращаемое значение |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 767 байт. LENGTH: константа или выражение типа целого |
Замечания |
Эта функция может принимать 32 765 байт, ограничение для символьных строк Firebird |
Пример |
Следующий оператор вернет строку 'fox jumps over the lazy dog': SELECT SRIGHT('The quick brown fox jumps over the lazy dog.', 28) AS R_STRING FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также SUBSTRO , SUBSTRLEN(), внутреннюю функцию SUBSTRING() |
IB_UDF |
RPAD(VALUE, LENGTH, IN_CHAR) |
Linux, Win32 |
Присоединяет указанный символ IN_CHAR К концу входной строки VALUE до тех пор, пока длина результирующей строки не станет равной заданному числу LENGTH |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки не длиннее, чем (32765 - LENGTH) байт. LENGTH: константа или выражение типа целого. IN CHAR один символ, который используется в качестве символа заполнителя |
Возвращаемое значение |
CHAR(n) или VARCHAR(n), где n имеет значение входного аргумента LENGTH |
Замечания |
Эта функция может получать и возвращать до 32 765 символов, ограничение на символьные строки Firebird |
Пример |
Следующий оператор вернет строку ' Framboise***********': SELECT RPAD ('Framboise', 20, ' * ' ) AS RPADDED_STRING FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также LPADO |
IB_UDF |
RTRIM(VALUE) |
Linux, Win32 |
Удаляет конечные пробелы из входной строки |
Аргументы |
VALUE- столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 765 байт |
Возвращаемое значение |
CHAR(n) или VARCHAR(n) без конечных пробельных символов |
Замечания |
Эта функция может принимать 32 765 байт, включая пробельные символы, значение для символьных строк Firebird |
Пример |
Следующий фрагмент триггера BEFORE INSERT будет удалять конечные пробелы из входной строки: . . . NEW.CHARACTER_COLUMN = RTRIM (NEW.CHARACTER_COLUMN); |
Связанные или похожие функции |
см. также LTRIM(), F_LRTRIM() |
IB_UDF |
STRLEN(VALUE) |
Linux, Win32 |
Возвращает длину строки |
Аргументы |
VALUE - столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 765 байт |
Возвращаемое значение |
Целое число, длина (счетчик) символов в строке |
Замечания |
Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird |
Пример |
Следующий фрагмент модуля PSQL присваивает длину столбца локальной переменной: . . . DECLARE VARIABLE LEN INTEGER; . . . SELECT COL1, COL2, COL3 FROM ATABLE INTO :VI, :V2, :V3; LEN = STRLEN(V3); |
Связанные или похожие функции |
См. также SUBSTRLEN() |
IB_UDF |
SUBSTR(VALUE, P0S1, P0S2) |
Linux, Win32 |
Возвращает строку, состоящую из позиций с POSI по POS2 включительно. Если POS2 превышает длину строки, то функция вернет все символы с позиции POSI до конца строки |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки. POSI, POS2: столбец или выражение, результатом вычисления которого является целый тип |
Возвращаемое значение |
Строка |
Замечания |
Если вы переносите приложение, написанное для InterBase, имейте в виду, что эта версия SUBSTRO отличается от реализованной в поставляемой Borland библиотеке ib_udf функции SUBSTRO, которая возвращает NULL, если POS2 выходит за пределы входной строки. Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird |
Пример |
Следующий оператор убирает первые три символа у строки COLUMNB и устанавливает ее значение в строку, начинающуюся с позиции 4 и заканчивающуюся позицией 100. Если строка заканчивается до позиции 100, результатом будут все символы от позиции 4 до конца строки: UPDATE ATABLE SET COLUMNB = SUBSTR(COLUMNB, 4, 100) WHERE... |
Связанные или похожие функции |
См. также SUBSTRLEN(), RTRIM(), внутреннюю функцию SUBSTRING() |
IB_UDF |
SUBSTRLEN(VALUE, STARTPOS, LENGTH) |
Linux, Win32 |
Возвращает строку длиной LENGTH, начинающуюся с позиции STARTPOS. Длина этой строки будет меньше, чем LENGTH, если начальная позиция плюс длина превышают длину исходной строки |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки не длиннее 32 765 байт. STARTPOS: столбец или выражение, результатом вычисления которого является целый тип. LENGTH: столбец или выражение, результатом вычисления которого является целый тип |
Возвращаемое значение |
Строка |
Замечания |
Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird |
Пример |
Следующий оператор берет значение столбца и изменяет его, удаляя первые три символа и удаляя после этого все конечные символы, если оставшаяся часть строки длиннее 20 символов: UPDATE ATABLE SET COLUMNB = SUBSTRLEN(COLUMNB, 4, 20) WHERE... |
Связанные или похожие функции |
См. также SUBSTRO, RTRIMO, внутреннюю функцию SUBSTRING() |
FREEUDFLIB |
F_CRLF |
Win32 |
Возвращает строку Windows возврат каретки/начало строки ASCII(13) || ASCII(10) |
Аргументы |
Нет |
Возвращаемое значение |
Строка в стиле языка С (завершается нулем) |
Пример |
Следующий оператор добавляет Windows-маркеры конца строки в столбец таблицы (например, во внешнюю таблицу для экспорта в другое приложение): INSERT INTO EXTABLE(COLUMN1, COLUMN2, EOL) VALUES (99, 'An item of data', CRLF()); |
FREEUDFLIB |
F_FINDW0RD(VALUE, N) |
Win32 |
Начиная с указанной позиции n, возвращает слово, содержащее символ этой позиции и следующие символы вплоть до следующего символа пробела |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки. N: целый тип, указывающий на позицию (начинающуюся с нуля) в строке, где находится требуемое слово |
Возвращаемое значение |
Строка |
Замечания |
Рассматривайте строки, передаваемые в F_FINDWORD(), как массивы символов, начинающиеся с индекса 0 |
Пример |
Следующий оператор возвращает слово 'pie': SELECT F_FINDWORD('I never tasted pie like Mom used to make', 15) FROM RDB5DATABASE; |
FREEUDFLIB |
F_LEFT(VALUE, N) |
Win32 |
Возвращает первые N символов из входной строки VALUE |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки. N: целый тип, указывающий количество возвращаемых символов из левой части VALUE |
Возвращаемое значение |
Строка из N символов |
Пример |
Следующий оператор возвращает строку 'I never tasted pie': SELECT F_LEFT('I never tasted pie like Mom used to make', 18) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также SUBSTRLEN(), SUBSTRO , внутреннюю функцию SUBSTRING() |
FREEUDFLIB |
F_LINEWRAP(VALUE, STARTPOS, WIDTH) |
Win32 |
Получая начальную позицию (STARTPOS) в строке(VALUE) и размер (WIDTH), возвращает часть строки VALUE, начиная с позиции STARTPOS, которая занимает пространство в WIDTH символов |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки. STARTPOS: целый тип, указывающий на позицию (начинающуюся с нуля) в строке, где находится возвращаемая строка. WIDTH: целый тип, задающий ширину столбца (печатаемого/отображаемого), которую должна занимать возвращаемая строка |
Возвращаемое значение |
Строка из WIDTH (или меньше) символов |
Замечания |
Рассматривайте строки, передаваемые в F_LINEWRAP(), как массивы символов, начинающиеся с индекса 0 |
Пример |
Следующий оператор возвращает строку 'which, taken at the flood': SELECT F_WORDWRAP('There is a tide in the affairs of men which, taken at the flood, leads on to good fortune.', 38, 25) FROM RDB$DATABASE; |
FREEUDFLIB |
F_LRTRIM(VALUE) |
Win32 |
Удаляет из строки все начальные и конечные пробелы |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки |
Возвращаемое значение |
Строка с отсутствующими начальными и конечными пробелами |
Пример |
Следующий оператор возвращает строку 'lean and mean': SELECT F_LRTRIM(' lean and mean') FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также LTRIM(), RTRIM() |
FREEUDFLIB |
F_PROPERCASE(VALUE) |
Win32 |
Преобразует строку в "правильный" вид, то есть берет каждое слово и заменяет первый символ на эквивалент в верхнем регистре, переводя каждый другой символ слова в нижний регистр |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа строки |
Возвращаемое значение |
Строка, подобная следующей: 'Now Is The Time For All Good Men To Come To The Aid Of The Party' |
Замечания |
Хотя эта функция и удобна для некоторых задач, она имеет ряд ограничений. В частности, не может правильно трактовать такие имена, как dOliveira, OHalloran или MacDonald |
Пример |
Следующий оператор вернет строку 'Eric S. Raymond': SELECT F_PROPERCASE('ERIC S. RAYMOND') FROM RDB$DATABASE; |
Связанные или похожие функции |
.I См. также LOWER(), UPPER() |
- Символьные константы
- Строковые функции
- Строковые константы
- Символьные строки
- Аргументы функции в Python
- 3. Функции
- Новые функции API для работы с Blob и массивами
- Математические функции
- Размытые функции
- 7.3. Финансовые функции
- 4.3. Логические функции и таблицы истинности
- B1.7. Функции обработки ошибок