Sql

Substr postgresql: Postgres Pro Standard : Документация: 9.6: 9.4. Строковые функции и операторы : Компания Postgres Professional

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

Навигация:

В этом разделе описываются функции и операторы для проверки и манипулирование двоичными строками, то есть значениями типа байта . Многие из них эквивалентны по назначению и синтаксису функции текстовой строки, описанные в предыдущем разделе.

SQL определяет некоторые строковые функции, которые используют ключевые слова, а не запятые, чтобы отделить аргументы. Подробности в Таблица 9.11 . PostgreSQL также предоставляет версии этих функций которые используют обычный синтаксис вызова функции (видеть Таблица 9.12 ).

Таблица 9.11. SQL Бинарные строковые функции и операторы

Функция/оператор

Описание

Примеры)

байта || байта байта

Объединяет две двоичные строки.

'\x123456'::bytea || '\x789a00bcde'::bytea \x123456789a00bcde

бит_длина ( байта ) → целое число

Возвращает количество битов в двоичной строке (8 раз

длина_октета ).

bit_length('\x123456'::bytea) 24

длина_октета ( байта ) → целое число

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

длина_октета('\x123456'::bytea) 3

наложение ( байты

байта РАЗМЕЩЕНИЕ новая подстрока байта ОТ начинать целое число [ ДЛЯ считать целое число ] ) → байта

Заменяет подстроку байты это начинается в в начинать байт и расширяется для

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

overlay('\x1234567890'::bytea размещение '\002\003'::bytea от 2 до 3) \x12020390

позиция (

подстрока байта В байты байта ) → целое число

Возвращает начальный индекс указанного подстрока в пределах байты или ноль, если он отсутствует.

position('\x5678'::bytea в '\x1234567890'::bytea) 3

подстрока ( байты байта [ ОТ начинать целое число ] [ ДЛЯ считать целое число ] ) → байта

Извлекает подстроку из байты начинается с в начинать ‘й байт, если он указан, и останавливаясь после

считать байты, если это указано. Укажите хотя бы один из начинать и считать .

substring('\x1234567890'::bytea от 3 до 2) \x5678

подрезать ([ ОБА ] bytesremoved

байта ОТ байты байта ) → байта

Удаляет самую длинную строку, содержащую только байты, появляющиеся в bytesremoved от начала и конец байты .

обрезка('\x9012'::bytea из '\x1234567890'::bytea) \x345678

подрезать

([ ОБА ] [ ОТ ] байты байта , bytesremoved байта ) → байта

Это нестандартный синтаксис для подрезать() .

обрезка (оба из '\x1234567890'::bytea, '\x9012'::bytea) \x345678


Доступны дополнительные функции для работы с двоичными строками.

перечислены в Таблица 9.12 . Некоторый из них используются внутри компании для реализации SQL -стандартные строковые функции, перечисленные в Таблица 9.11 .

Таблица 9.12. Другие бинарные строковые функции

Функция

Описание

Примеры)

бтрим ( байты байта , bytesremoved

байта ) → байта

Удаляет самую длинную строку, содержащую только байты, появляющиеся в bytesremoved от начала и до конца байты .

btrim('\x1234567890'::bytea, '\x9012'::bytea) \x345678

get_bit ( байты байта , н большойинт ) → целое число

Экстракты н-й кусочек из двоичной строки.

get_bit('\x1234567890'::bytea, 30) 1

получить_байт ( байты байта , н целое число ) → целое число

Экстракты н-й байт из двоичной строки.

get_byte('\x1234567890'::bytea, 4) 144

длина ( байта ) → целое число

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

длина('\x1234567890'::bytea) 5

длина ( байты байта , кодирование имя ) → целое число

Возвращает количество символов в двоичной строке, предполагая что это текст в данном кодирование .

длина('jose'::bytea, 'UTF8') 4

мд5 ( байта ) → текст

Вычисляет MD5 хэш из двоичная строка с результатом, записанным в шестнадцатеричном формате.

md5('Th\000omas'::bytea) 8ab2d3c9689aaf18 b4958c334c82d8b1

set_bit ( байты байта , н большойинт , новое значение целое число ) → байта

Наборы н-й немного в двоичная строка в новое значение .

set_bit('\x1234567890'::bytea, 30, 0) \x1234563890

set_byte ( байты байта , н целое число , новое значение целое число ) → байта

Наборы н-й байт в двоичная строка в новое значение .

set_byte('\x1234567890'::bytea, 4, 64) \x1234567840

ша224 ( байта ) → байта

Вычисляет SHA-224 хэш двоичной строки.

sha224('abc'::bytea) \x23097d223405d8228642a477bda2 55b32aadbce4bda0b3f7e36c9da7

ша256 ( байта ) → байта

Вычисляет SHA-256 хэш двоичной строки.

sha256('abc'::bytea) \xba7816bf8f01cfea414140de5dae2223 b00361a396177a9cb410ff61f20015ad

ша384 ( байта ) → байта

Вычисляет SHA-384 хэш двоичной строки.

sha384('abc'::bytea) \xcb00753f45a35e8bb5a03d699ac65007 272c32ab0eded1631a8b605a43ff5bed 8086072ba1e7cc2358baeca134c825a7

ша512 ( байта ) → байта

Вычисляет SHA-512 хэш двоичной строки.

sha512('abc'::bytea) \xddaf35a193617abacc417349ae204131 12e6fa4e89a97ea20a9eeee64b55d39a 2192992a274fc1a836ba3c23a3feebbd 454d4423643ce80e2a9ac94fa54ca49f

substr ( байты байта , начинать целое число [ , считать целое число ] ) → байта

Извлекает подстроку из байты начинается с в начинать байт, и расширение для считать байты, если это указано. (Такой же как подстрока( байты от начинать для считать ) .)

substr('\x1234567890'::bytea, 3, 2) \x5678


Функции получить_байт и set_byte нумеровать первый байт двоичной строки как байт 0. Функции get_bit и set_bit число битов справа в каждом байте; например бит 0 является наименьшим значащий бит первого байта, а 15-й бит — старший значащий бит второго байта.

По историческим причинам функция мд5 возвращает шестнадцатеричное значение типа текст тогда как SHA-2 тип возвращаемого значения функции байта . Используйте функции кодировать и декодировать к преобразовать между двумя. Например написать кодировать (sha256 ('abc'), 'шестнадцатеричный') чтобы получить шестнадцатеричное текстовое представление, или декодировать (md5 ('abc'), 'шестнадцатеричный') получить а байта ценить.

Функции для преобразования строк между различными наборами символов (кодировки) и для представления произвольных двоичных данных в текстовом виде. форме, показаны в Таблица 9.13 . Для этих функции, аргумент или результат типа текст выражается в кодировке базы данных по умолчанию, а аргументы или результаты тип байта находятся в кодировке, названной другим аргументом.

Таблица 9.13. Функции преобразования текстовых/двоичных строк

Функция

Описание

Примеры)

конвертировать ( байты байта , src_encoding имя , dest_encoding имя ) → байта

Преобразует двоичную строку, представляющую текст в кодирование src_encoding в двоичную строку в кодировке dest_encoding (видеть Раздел 23. 3.4 для доступные преобразования).

конвертировать('text_in_utf8', 'UTF8', 'LATIN1') \x746578745f696e5f75746638

convert_from ( байты байта , src_encoding имя ) → текст

Преобразует двоичную строку, представляющую текст в кодирование src_encoding к текст в кодировке базы данных (видеть Раздел 23. 3.4 для доступные преобразования).

convert_from('text_in_utf8', 'UTF8') text_in_utf8

Перевести в ( нить текст , dest_encoding имя ) → байта

Преобразует текст строка (в кодировке базы данных) в двоичная строка, закодированная в кодировке dest_encoding (видеть Раздел 23. 3.4 для доступные преобразования).

convert_to('некоторый_текст', 'UTF8') \x736f6d655f74657874

кодировать ( байты байта , формат текст ) → текст

Кодирует двоичные данные в текстовое представление; поддерживается формат значения: base64 , побег , шестигранник .

кодировать('123\000\001', 'base64') МТИжААЭ=

декодировать ( нить текст , формат текст ) → байта

Декодирует двоичные данные из текстового представления; поддерживается формат значения такие же, как для кодировать .

декодировать('MTIzAAE=', 'base64') \x3132330001


кодировать и декодировать функции поддерживают следующие текстовые форматы:

base64

base64 формат такой из RFC 2045 Раздел 6. 8 . Согласно RFC, закодированные строки разбито на 76 символов. Однако вместо MIME CRLF маркер конца строки, для обозначения конца строки используется только новая строка. декодировать функция игнорирует возврат каретки, символы новой строки, пробела и табуляции. В противном случае возникает ошибка поднял, когда декодировать предоставляется недействительным данные base64 — в том числе, когда неверное заполнение в конце.

побег

побег формат преобразует нулевые байты и байты со старшим битом, установленным в восьмеричные escape-последовательности ( \ ннн ), и он удваивается обратная косая черта. Другие значения байтов представлены буквально. декодировать функция вызовет ошибку, если за обратной косой чертой не следует ни вторая обратная косая черта, ни три восьмеричные цифры; он принимает другие значения байтов без изменений.

шестигранник

шестигранник формат представляет каждые 4 бита данные в виде одной шестнадцатеричной цифры, 0 через ф , записывая старший разряд каждый байт сначала. кодировать выходы функций в а ф шестнадцатеричные цифры в нижнем случай. Поскольку наименьшая единица данных составляет 8 бит, всегда возвращается четное количество символов к кодировать . декодировать функция принимает а ф символы в либо в верхнем, либо в нижнем регистре. Возникает ошибка когда декодировать даны неверные шестнадцатеричные данные — в том числе при задании нечетного количества символов.

См. также агрегатную функцию string_agg в Раздел 9.21 и функции больших объектов в Раздел 34.4 .

Функции и пакеты совместимости Oracle / PostgreSQL Extension Network

Этот пакет содержит несколько полезных строковых и символьных функций. Каждый поддерживает положительные и отрицательные смещения — т. е. смещение от конец строки. Например:

 plvstr.left('abcdef',2) -> ab
plvstr.left('abcdef',-2) -> abcd
plvstr.substr('abcdef',1,1) -> a
plvstr.substr('abcdef',-1,1) -> f
plvstr.substr('abcde',-2,1) -> д 
  • plvstr.normalize(str text) — нормализовать строку — заменить белые символы на пробел, заменить пробелы на пробел

  • plvstr.is_prefix(str text, prefix text, cs bool) — возвращает true, если префикс является префиксом строки

  • plvstr. is_prefix(текст строки, текст префикса) — возвращает true, если префикс является префиксом строки

  • plvstr.is_prefix(str int, prefix int) — возвращает true, если префикс является префиксом строки

  • plvstr.is_prefix(str bigint, prefix bigint) — возвращает true, если префикс является префиксом строки

  • plvstr.substr(str text, start int, len int) — возвращает подстроку, начатую в start_in, в конец

  • plvstr.substr(str text, start int) — возвращает подстроку, начатую в start_in, в конец

  • plvstr.instr(str text, patt text, start int, nth int) — Поиск шаблона в строке

  • plvstr.instr(str text, patt text, start int) — Поиск шаблона в строке

  • plvstr.instr(str text, patt text) — Поиск шаблона в строке

  • plvstr.lpart(str text, div text, start int, nth int, all_if_notfound bool) — вызовите эту функцию, чтобы вернуть левую часть строки

  • plvstr. lpart(str text, div text, start int, nth int) — вызовите эту функцию, чтобы вернуть левую часть строки.

  • plvstr.lpart(str text, div text, start int) — вызовите эту функцию, чтобы вернуть левую часть строки.

  • plvstr.lpart(str text, div text) — вызовите эту функцию, чтобы вернуть левую часть строки.

  • plvstr.rpart(str text, div text, start int, nth int, all_if_notfound bool) — вызовите эту функцию, чтобы вернуть правую часть строки.

  • plvstr.rpart(str text, div text, start int, nth int) — вызовите эту функцию, чтобы вернуть правую часть строки.

  • plvstr.rpart(str text, div text, start int) — вызовите эту функцию, чтобы вернуть правую часть строки.

  • plvstr.rpart(str text, div text) — вызовите эту функцию, чтобы вернуть правую часть строки.

  • plvstr.lstrip(str text, substr text, num int) — вызовите эту функцию, чтобы удалить символы с начала

  • plvstr. lstrip(str text, substr text) — вызовите эту функцию, чтобы удалить символы с начала

  • plvstr.rstrip(str text, substr text, num int) — вызов этой функции для удаления символов с конца

  • plvstr.rstrip(str text, substr text) — вызов этой функции для удаления символов с конца

  • plvstr.rvrs(str text, start int, _end int) — Перевернуть строку или часть строки

  • plvstr.rvrs(str text, start int) — Перевернуть строку или часть строки

  • plvstr.rvrs(str text) — Перевернуть строку или часть строки

  • plvstr.left(str text, n int) — возвращает первые символы num_in. Вы можете использовать отрицательный num_in

  • plvstr.right(str text, n int) — Возвращает последние num_in символов. Вы можете использовать отрицательный num_ni

  • plvstr.swap(str text, replace text, start int, lengh int) — заменить подстроку в строке указанной строкой

  • plvstr. swap(str text, replace text) — заменить подстроку в строке указанной строкой

  • plvstr.betwn(str text, start int, _end int, inclusive bool) — найти подстроку между начальным и конечным местоположениями

  • plvstr.betwn(str text, start text, _end text, startnth int, endnth int, inclusive bool, gotoend bool) — найти подстроку между начальным и конечным местоположениями

  • plvstr.betwn(str text, start text, _end text) — найти подстроку между начальным и конечным местоположениями

  • plvstr.betwn(str text, start text, _end text, startnth int, endnth int) — найти подстроку между начальным и конечным местоположениями

  • plvchr.nth(str text, n int) — вызовите эту функцию, чтобы вернуть N-й символ в строке.

  • plvchr.first(str text) — вызовите эту функцию, чтобы вернуть первый символ в строке.

  • plvchr.last(str text) — вызовите эту функцию, чтобы вернуть последний символ в строке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *