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

Извлечение подстроки

Разберем функции для получения части строки.

left

left(строка, количество_символов) - возвращает первые символы в строке.

SELECT left('мама мыла раму', 3)
left
мам

Если вторым параметром передать отрицательное число, то с конца строки будет откинуто это количество символов:

SELECT left('мама мыла раму', -3)
left
мама мыла р

right

right(строка, количество_символов) - возвращает переданное количество символов с конца строки.

SELECT right('мама мыла раму', 4)
right
раму

Если вторым параметром передать отрицательное число, то с начала строки будет откинуто это количество символов:

SELECT right('мама мыла раму', -5)
right
мыла раму

substring

substring(строка from с_какого_символа for сколько_символов) - получение определенного количества символов из строки.

SELECT substring('мама мыла раму' from 3 for 5)
substring
ма мы

Если запросить символов больше, чем есть в строке, то будут возвращены все символы до конца строки:

SELECT substring('мама мыла раму' from 3 for 50)
substring
ма мыла раму

С какого символа брать подстроку можно не передавать. В этом случае символы будут браться с начала строки (аналог left):

SELECT substring('мама мыла раму' for 3)
substring
мам

Количество символов можно не передавать. В таком случае будут возвращены все символы до конца строки:

SELECT substring('мама мыла раму' from 5)
substring
мыла раму

substr

substr(строка, с_какого_символа, сколько_символов) - аналог substring для тех, кому не нравится писать from и for.

SELECT substr('мама мыла раму', 3, 5)
substr
ма мы
SELECT substr('мама мыла раму', 5)
substr
мыла раму

split_part

split_part(строка, разделитель, какой_элемент_вернуть) - разбивает строку на подстроки по разделителю и возвращает подстроку с заданным номером.

SELECT split_part('мама мыла раму', ' ', 1)
split_part
мама
SELECT split_part('мама мыла раму', ' ', 2)
split_part
мыла
SELECT split_part('мама мыла раму', ' ', 3)
split_part
раму

Если указать индекс несуществующего элемента, то будет возвращена пустая строка ''.

SELECT split_part('мама мыла раму', ' ', 4)
split_part
ПредыдущаяСледующая