Текстовые функции

Текстовые функции — это функции для работы с текстовыми строками (данными типа VARCHAR).

concat()

Описание

Конкатенирует несколько строк, массивов или двоичных значений.

Использование

concat(argument1, argument2, ...)

Пустые значения (NULL) игнорируются.

См. также Оператор ||.

Посмотреть пример
SELECT
    concat('\xAA'::BLOB, '\xff'::BLOB) as result_blob,
    concat('I', ' ', 'love', ' ', 'Tengri') as result_string,
    concat(['T', 'e'], ['n', 'g', 'r', 'i']) as result_array;
+-------------+---------------+---------------+
| result_blob | result_string |  result_array |
+-------------+---------------+---------------+
| \xAA\xFF    | I love Tengri | {T,e,n,g,r,i} |
+-------------+---------------+---------------+

contains()

Описание

Возвращает true, если в указанной строке string содержится
искомая подстрока search_string.

Использование

contains(string, search_string)

Посмотреть пример
SELECT
    contains('I love Tengri', 'Tengri') AS check_name,
    contains('I love Tengri', 'TNGRi')  AS check_nickname;
+------------+----------------+
| check_name | check_nickname |
+------------+----------------+
| true       | false          |
+------------+----------------+

length()

Описание

Возвращает количество символов в строке string.

Использование

length(string)

Псевдонимы

char_length(), character_length()

Посмотреть пример
SELECT
    length('I love Tengri 💙') AS length;
+--------+
| length |
+--------+
| 15     |
+--------+

strlen()

Описание

Возвращает количество байтов в строке string.

Использование

strlen(string)

Посмотреть пример
SELECT
    strlen('Tengri 💙') AS strlen;
+--------+
| strlen |
+--------+
| 11     |
+--------+

trim()

Описание

Удаляет все вхождения любого из указанных символов с обеих сторон строки.

Использование

trim(string[, characters])

Если подлежащие удалению символы не указаны, то по умолчанию таким символом является пробел.

Посмотреть примеры
SELECT
    trim('  Tengri ') AS trim;
+--------+
|  trim  |
+--------+
| Tengri |
+--------+
SELECT
    trim('[Tengri]', '{([])}') AS trim_brackets;
+---------------+
| trim_brackets |
+---------------+
| Tengri        |
+---------------+

ltrim()

Описание

Удаляет все вхождения любого из указанных символов в начале строки.

Использование

ltrim(string[, characters])

Если подлежащие удалению символы не указаны, то по умолчанию таким символом является пробел.

Посмотреть примеры
SELECT
    ltrim('  Tengri     ') AS ltrim;
+-------------+
| ltrim       |
+-------------+
| Tengri      |
+-------------+
SELECT
    ltrim('{{([Tengri])}}', '{([])}') AS ltrim_brackets;
+----------------+
| ltrim_brackets |
+----------------+
| Tengri])}}     |
+----------------+

rtrim()

Описание

Удаляет все вхождения любого из указанных символов в конце строки.

Использование

rtrim(string[, characters])

Если подлежащие удалению символы не указаны, то по умолчанию таким символом является пробел.

Посмотреть примеры
SELECT
    rtrim('  Tengri     ') AS rtrim;
+----------+
| rtrim    |
+----------+
|   Tengri |
+----------+
SELECT
    rtrim('{{([Tengri])}}', '{([])}') AS rtrim_brackets;
+----------------+
| rtrim_brackets |
+----------------+
| {{([Tengri     |
+----------------+

lower()

Описание

Преобразует строку в нижний регистр.

Использование

lower(string)

Псевдонимы

lcase()

Посмотреть пример
SELECT
    lower('TNGRi') AS lower;
+-------+
| lower |
+-------+
| tngri |
+-------+

upper()

Описание

Преобразует строку в верхний регистр.

Использование

upper(string)

Псевдонимы

ucase()

Посмотреть пример
SELECT
    upper('Tengri') AS upper;
+--------+
|  upper |
+--------+
| TENGRI |
+--------+

split()

Описание

Делит строку на две части по заданному сепаратору.

Использование

split(string, separator)

Псевдонимы

str_split, string_split, string_to_array

Посмотреть пример
SELECT
    split('I love Tengri', ' ') AS words;
+-----------------+
|      words      |
+-----------------+
| {I,love,Tengri} |
+-----------------+

chr()

Описание

Возвращает символ, соответствующий значению кода ASCII или кода Unicode, заданному в argument.

Использование

chr(argument)

Посмотреть пример
SELECT
    chr(84) || chr(78) || chr(71) || chr(82) || chr(105) AS chr;
+-------+
|  chr  |
+-------+
| TNGRi |
+-------+

md5()

Описание

Возвращает хеш MD5 данных из argument в виде строки (VARCHAR).

Использование

md5(argument)

В argument могут быть двоичные данные или строка.

Посмотреть примеры
SELECT
    md5('\xAA\xFF'::BLOB) as md5_hash;
+----------------------------------+
|             md5_hash             |
+----------------------------------+
| 1fab7f7621f5ddc051ebd1f2c63c4665 |
+----------------------------------+
SELECT
    md5('Tengri') as md5_hash;
+----------------------------------+
|             md5_hash             |
+----------------------------------+
| 846b02d31131a10bd6ac0ba189c65bef |
+----------------------------------+

sha1()

Описание

Возвращает хеш SHA-1 данных из argument в виде строки (VARCHAR).

Использование

sha1(argument)

В argument могут быть двоичные данные или строка.

Посмотреть примеры
SELECT
    sha1('\xAA\xFF'::BLOB) as sha1_hash;
+------------------------------------------+
|                 sha1_hash                |
+------------------------------------------+
| e89b0db325637edfacde04a76005c492e2c5aeca |
+------------------------------------------+
SELECT
    sha1('Tengri') as sha1_hash;
+------------------------------------------+
|                 sha1_hash                |
+------------------------------------------+
| b514525a19995a2442d7565bfd9bb42d9dc71a13 |
+------------------------------------------+

sha256()

Описание

Возвращает хеш SHA-256 данных из argument в виде строки (VARCHAR).

Использование

sha256(argument)

В argument могут быть двоичные данные или строка.

Посмотреть пример
SELECT
    sha256('\xAA\xFF'::BLOB) as sha256_hash;
+------------------------------------------------------------------+
|                            sha256_hash                           |
+------------------------------------------------------------------+
| 768318522cac43261e8ef4946c2296a3643d523a8d5bda8ff5b82aa64470421a |
+------------------------------------------------------------------+
SELECT
    sha256('Tengri') as sha256_hash;
+------------------------------------------------------------------+
|                            sha256_hash                           |
+------------------------------------------------------------------+
| 8aaacef66663b14ee7c5a03dbaec7b40f0f3bf17bd12d2ed4f9aaad0e10a0d77 |
+------------------------------------------------------------------+

Оператор ||

Описание

Конкатенирует несколько строк, массивов или двоичных значений.

Использование

argument1 || argument2 || ...

Пустые значения (NULL) игнорируются.

См. также concat().

Посмотреть примеры
SELECT
    '\xAA'::BLOB || '\xff'::BLOB as result_blob,
    'I' || ' ' || 'love' || ' ' || 'Tengri' as result_string,
    ['T', 'e'] || ['n', 'g', 'r', 'i'] as result_array;
+-------------+---------------+---------------+
| result_blob | result_string |  result_array |
+-------------+---------------+---------------+
|             | I love Tengri | {T,e,n,g,r,i} |
+-------------+---------------+---------------+

Обратите внимание, что значения в столбце result_blob в выводе не отображаются (так как имеют тип BLOB).

С помощью выражения DESCRIBE выведем типы данных для всех столбцов в таблице, созданной так же, как в предыдущем примере:

CREATE TABLE concat AS

SELECT
    '\xAA'::BLOB || '\xff'::BLOB as result_blob,
    'I' || ' ' || 'love' || ' ' || 'Tengri' as result_string,
    ['T', 'e'] || ['n', 'g', 'r', 'i'] as result_array;

DESCRIBE TABLE concat;
+---------------+-------------+------+------+---------+-------+
|  column_name  | column_type | null |  key | default | extra |
+---------------+-------------+------+------+---------+-------+
| result_blob   | BLOB        | YES  | null | null    | null  |
+---------------+-------------+------+------+---------+-------+
| result_string | VARCHAR     | YES  | null | null    | null  |
+---------------+-------------+------+------+---------+-------+
| result_array  | VARCHAR[]   | YES  | null | null    | null  |
+---------------+-------------+------+------+---------+-------+