Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Функции для работы со строками

Функции для поиска и замены в строках описаны отдельно.

CRC32

Добавленный в: v20.1.0

Вычисляет контрольную сумму CRC32 для строки, используя полином CRC-32-IEEE 802.3 и начальное значение 0xffffffff (реализация zlib).

Синтаксис

CRC32(s)

Аргументы

  • s — строка String, для которой вычисляется CRC32. String

Возвращаемое значение

Возвращает контрольную сумму CRC32 для строки. UInt32

Примеры

Пример использования

SELECT CRC32('ClickHouse')
┌─CRC32('ClickHouse')─┐
│          1538217360 │
└─────────────────────┘

CRC32IEEE

Добавленный в: v20.1.0

Вычисляет контрольную сумму CRC32 для строки с использованием полинома CRC-32-IEEE 802.3.

Синтаксис

CRC32IEEE(s)

Аргументы

  • s — строка, для которой вычисляется CRC32. String

Возвращаемое значение

Возвращает контрольную сумму CRC32 для строки. UInt32

Примеры

Пример использования

SELECT CRC32IEEE('ClickHouse');
┌─CRC32IEEE('ClickHouse')─┐
│              3089448422 │
└─────────────────────────┘

CRC64

Добавленный в: v20.1.0

Вычисляет контрольную сумму CRC64 для строки с использованием полинома CRC-64-ECMA.

Синтаксис

CRC64(s)

Аргументы

  • s — строка, для которой вычисляется CRC64. String

Возвращаемое значение

Возвращает контрольную сумму CRC64 для строки. UInt64

Примеры

Пример использования

SELECT CRC64('ClickHouse');
┌──CRC64('ClickHouse')─┐
│ 12126588151325169346 │
└──────────────────────┘

appendTrailingCharIfAbsent

Добавленный в: v1.1.0

Добавляет символ c в строку s, если s непустая и не заканчивается символом c.

Синтаксис

appendTrailingCharIfAbsent(s, c)

Аргументы

  • s — Входная строка. String
  • c — Символ, который нужно добавить, если он отсутствует. String

Возвращаемое значение

Возвращает строку s с добавленным символом c, если s не заканчивается на c. String

Примеры

Пример использования

SELECT appendTrailingCharIfAbsent('https://example.com', '/');
┌─appendTrailingCharIfAbsent('https://example.com', '/')─┐
│ https://example.com/                                   │
└────────────────────────────────────────────────────────┘

ascii

Добавленный в: v22.11.0

Возвращает ASCII-код первого символа строки s в виде Int32.

Синтаксис

ascii(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает код точки ASCII для первого символа. Если s — пустая строка, результат равен 0. Если первый символ не является символом ASCII или не входит в диапазон Latin-1 Supplement UTF-16, результат не определён. Int32

Примеры

Пример использования

SELECT ascii('234')
┌─ascii('234')─┐
│           50 │
└──────────────┘

base32Decode

Добавленный в: v25.6.0

Декодирует строку Base32 (RFC 4648). Если строка не является корректной строкой в кодировке Base32, генерируется исключение.

Синтаксис

base32Decode(encoded)

Аргументы

  • encoded — столбец типа String или константа. String

Возвращаемое значение

Возвращает строку с декодированным значением аргумента. String

Примеры

Пример использования

SELECT base32Decode('IVXGG33EMVSA====');
┌─base32Decode('IVXGG33EMVSA====')─┐
│ Encoded                          │
└──────────────────────────────────┘

base32Encode

Добавленный в: v25.6.0

Кодирует строку в Base32.

Синтаксис

base32Encode(plaintext)

Аргументы

  • plaintext — Открытый текст, который нужно закодировать. String

Возвращаемое значение

Возвращает строку, содержащую закодированное значение аргумента. String или FixedString

Примеры

Пример использования

SELECT base32Encode('Encoded')
┌─base32Encode('Encoded')─┐
│ IVXGG33EMVSA====        │
└─────────────────────────┘

base58Decode

Добавленный в: v22.7.0

Декодирует строку в формате Base58. Если строка не является корректной строкой Base58, генерируется исключение. Необязательный второй аргумент expected_size можно указать для выбора оптимизированного декодера фиксированного размера. В настоящее время поддерживаются значения 32 и 64. Для остальных значений используется универсальный декодер. Если выбран оптимизированный декодер, но входную строку нельзя декодировать ровно в такое количество байтов, функция генерирует исключение (или возвращает пустую строку для tryBase58Decode).

Синтаксис

base58Decode(encoded[, expected_size])

Аргументы

  • encoded — Столбец или константа типа String для декодирования. String
  • expected_size — Необязательно. Ожидаемый размер результата декодирования в байтах. Если указано 32 или 64, используется оптимизированный декодер; для остальных значений используется универсальный декодер. UInt8, UInt16, UInt32, or UInt64

Возвращаемое значение

Возвращает строку, содержащую декодированное значение аргумента. String

Примеры

Пример использования

SELECT base58Decode('JxF12TrwUP45BMd');
┌─base58Decode('JxF12TrwUP45BMd')─┐
│ Hello World                     │
└─────────────────────────────────┘

base58Encode

Добавленный в: v22.7.0

Кодирует строку в Base58.

Синтаксис

base58Encode(plaintext)

Аргументы

  • plaintext — Открытый текст, который нужно закодировать. String

Возвращаемое значение

Возвращает строку с закодированным значением аргумента. String

Примеры

Пример использования

SELECT base58Encode('ClickHouse');
┌─base58Encode('ClickHouse')─┐
│ 4nhk8K7GHXf6zx             │
└────────────────────────────┘

base64Decode

Добавленный в: v18.16.0

Декодирует строку из представления Base64 в соответствии с RFC 4648. Начиная с версии 26.7 символы-пробелы space, tab (\t), line feed (\n), carriage return (\r) и form feed (\f) во входных данных игнорируются (в более ранних версиях ввод, содержащий их, отклонялся). Vertical tab (\v) и любые другие символы, не входящие в алфавит Base64, отклоняются. В случае ошибки генерирует исключение.

Синтаксис

base64Decode(encoded)

Псевдонимы: FROM_BASE64

Аргументы

  • encoded — столбец типа String или константа для декодирования. Если строка некорректно закодирована в Base64, генерируется исключение. String

Возвращаемое значение

Возвращает декодированную строку. String

Примеры

Пример использования

SELECT base64Decode('Y2xpY2tob3VzZQ==')
┌─base64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse                       │
└──────────────────────────────────┘

base64Encode

Добавленный в: v18.16.0

Кодирует строку в формате Base64 в соответствии с RFC 4648.

Синтаксис

base64Encode(plaintext)

Псевдонимы: TO_BASE64

Аргументы

  • plaintext — столбец или константа с открытым текстом для декодирования. String

Возвращаемое значение

Возвращает строку, содержащую закодированное значение аргумента. String

Примеры

Пример использования

SELECT base64Encode('clickhouse')
┌─base64Encode('clickhouse')─┐
│ Y2xpY2tob3VzZQ==           │
└────────────────────────────┘

base64URLDecode

Добавленный в: v24.6.0

Декодирует строку из представления Base64 с использованием URL-безопасного алфавита в соответствии с RFC 4648. Стандартный алфавит (+ и /) также принимается при декодировании. Начиная с версии 26.7, символы-пробелы во входных данных — пробел, табуляция (\t), перевод строки (\n), возврат каретки (\r) и перевод страницы (\f) — игнорируются (в более ранних версиях ввод, содержащий их, отклонялся). Вертикальная табуляция (\v) и любые другие символы, не входящие в алфавит Base64, отклоняются. При ошибке генерирует исключение.

Синтаксис

base64URLDecode(encoded)

Аргументы

  • encoded — столбец типа String или константа для кодирования. Если строка закодирована в Base64 некорректно, будет сгенерировано исключение. String

Возвращаемое значение

Возвращает строку, содержащую декодированное значение аргумента. String

Примеры

Пример использования

SELECT base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
┌─base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com                            │
└───────────────────────────────────────────────────┘

base64URLEncode

Добавленный в: v18.16.0

Кодирует строку в представлении Base64 (RFC 4648), используя URL-безопасный алфавит.

Синтаксис

base64URLEncode(plaintext)

Аргументы

  • plaintext — столбец или константа с открытым текстом для кодирования. String

Возвращаемое значение

Возвращает строку, содержащую закодированное значение аргумента. String

Примеры

Пример использования

SELECT base64URLEncode('https://clickhouse.com')
┌─base64URLEncode('https://clickhouse.com')─┐
│ aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ            │
└───────────────────────────────────────────┘

basename

Добавленный в: v20.1.0

Извлекает конечную часть строки после последнего символа прямой или обратной косой черты. Эта функция часто используется для извлечения имени файла из пути.

Синтаксис

basename(expr)

Аргументы

  • expr — Строковое выражение. Обратные косые черты должны быть экранированы. String

Возвращаемое значение

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

Примеры

Извлечение имени файла из пути Unix

SELECT 'some/long/path/to/file' AS a, basename(a)
┌─a──────────────────────┬─basename(a)─┐
│ some/long/path/to/file │ file        │
└────────────────────────┴─────────────┘

Извлечь имя файла из Windows-пути

SELECT 'some\\long\\path\\to\\file' AS a, basename(a)
┌─a──────────────────────┬─basename(a)─┐
│ some\long\path\to\file │ file        │
└────────────────────────┴─────────────┘

Строка без символов-разделителей пути

SELECT 'some-file-name' AS a, basename(a)
┌─a──────────────┬─basename(a)────┐
│ some-file-name │ some-file-name │
└────────────────┴────────────────┘

byteHammingDistance

Добавленный в: v23.9.0

Вычисляет расстояние Хэмминга между двумя байтовыми строками.

Синтаксис

byteHammingDistance(s1, s2)

Псевдонимы: mismatches

Аргументы

  • s1 — Первая строка. String
  • s2 — Вторая строка. String

Возвращаемое значение

Возвращает расстояние Хэмминга между двумя строками. UInt64

Примеры

Пример использования

SELECT byteHammingDistance('karolin', 'kathrin')
┌─byteHammingDistance('karolin', 'kathrin')─┐
│                                         3 │
└───────────────────────────────────────────┘

caseFoldUTF8

Добавленный в: v26.3.0

Применяет свёртку регистра Unicode к UTF-8-строке, преобразуя её в нормализованную форму, аналогичную нижнему регистру и подходящую для регистронезависимых сравнений.

Применяет стандартную свёртку регистра Unicode. Сохраняет символы совместимости, на которые свёртка регистра не влияет (например, римские цифры, числа в кружках), однако обратите внимание, что некоторые лигатуры, такие как , всё равно раскладываются, поскольку свёртка регистра Unicode сама по себе их разворачивает.

Синтаксис

caseFoldUTF8(str)

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

UTF-8-строка после свёртки регистра. String

Примеры

Базовый пример свёртки регистра

SELECT caseFoldUTF8('Straße')
┌─caseFoldUTF8('Straße')─┐
│ strasse                │
└────────────────────────┘

compareSubstrings

Добавленный в: v25.2.0

Сравнивает две строки в лексикографическом порядке.

Синтаксис

compareSubstrings(s1, s2, s1_offset, s2_offset, num_bytes)

Аргументы

  • s1 — Первая строка для сравнения. String
  • s2 — Вторая строка для сравнения. String
  • s1_offset — Позиция в s1 (с нумерацией с нуля), с которой начинается сравнение. UInt*
  • s2_offset — Позиция в s2 (с нумерацией с нуля), с которой начинается сравнение. UInt*
  • num_bytes — Максимальное количество байтов для сравнения в обеих строках. Если s1_offset (или s2_offset) + num_bytes превышает длину входной строки, значение num_bytes будет соответственно уменьшено. UInt*

Возвращаемое значение

Возвращает:

  • -1, если s1[s1_offset : s1_offset + num_bytes] < s2[s2_offset : s2_offset + num_bytes].
  • 0, если s1[s1_offset : s1_offset + num_bytes] = s2[s2_offset : s2_offset + num_bytes].
  • 1, если s1[s1_offset : s1_offset + num_bytes] > s2[s2_offset : s2_offset + num_bytes]. Int8

Примеры

Пример использования

SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result
┌─result─┐
│      0 │
└────────┘

concat

Добавленный в: v1.1.0

Объединяет указанные аргументы.

Аргументы, не относящиеся к типам String или FixedString, преобразуются в строки с использованием сериализации по умолчанию. Поскольку это снижает производительность, использовать аргументы, отличные от String/FixedString, не рекомендуется.

Синтаксис

concat([s1, s2, ...])

Аргументы

  • s1, s2, ... — Любое количество значений произвольного типа. Any

Возвращаемое значение

Возвращает строку String, полученную путём конкатенации аргументов. Если какой-либо из аргументов равен NULL, функция возвращает NULL. Если аргументы отсутствуют, возвращается пустая строка. Nullable(String)

Примеры

Конкатенация строк

SELECT concat('Hello, ', 'World!')
┌─concat('Hello, ', 'World!')─┐
│ Hello, World!               │
└─────────────────────────────┘

Объединение чисел

SELECT concat(42, 144)
┌─concat(42, 144)─┐
│ 42144           │
└─────────────────┘

concatAssumeInjective

Добавленный в: v1.1.0

Аналогично concat, но предполагается, что concat(s1, s2, ...) → sn — инъективная функция, то есть для разных аргументов она возвращает разные результаты.

Может использоваться для оптимизации GROUP BY.

Синтаксис

concatAssumeInjective([s1, s2, ...])

Аргументы

  • s1, s2, ... — Любое количество значений произвольного типа. String или FixedString

Возвращаемое значение

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

Примеры

Оптимизация GROUP BY

CREATE TABLE key_val (key1 String, key2 String, value UInt32) ENGINE = Memory;
INSERT INTO key_val VALUES ('Hello, ', 'World!', 1), ('Hello, ', 'World!', 2), ('Hello, ', 'World', 3);

SELECT concatAssumeInjective(key1, key2) AS key, sum(value) FROM key_val GROUP BY key ORDER BY key;
┌─key───────────┬─sum(value)─┐
│ Hello, World  │          3 │
│ Hello, World! │          3 │
└───────────────┴────────────┘

concatWithSeparator

Добавленный в: v22.12.0

Объединяет указанные строки, используя заданный разделитель.

Синтаксис

concatWithSeparator(sep[, exp1, exp2, ...])

Псевдонимы: concat_ws

Аргументы

  • sep — Разделитель, который будет использоваться. const String или const FixedString
  • exp1, exp2, ... — Выражения для объединения. Аргументы, не имеющие тип String или FixedString, преобразуются в строки с использованием сериализации по умолчанию. Поскольку это снижает производительность, использовать аргументы не типа String/FixedString не рекомендуется. Any

Возвращаемое значение

Возвращает строку, созданную объединением аргументов. Если значение любого из аргументов равно NULL, функция возвращает NULL. String

Примеры

Пример использования

SELECT concatWithSeparator('a', '1', '2', '3', '4')
┌─concatWithSeparator('a', '1', '2', '3', '4')─┐
│ 1a2a3a4                                      │
└──────────────────────────────────────────────┘

concatWithSeparatorAssumeInjective

Добавленный в: v22.12.0

Как concatWithSeparator, но предполагает, что concatWithSeparator(sep[,exp1, exp2, ... ]) → result инъективна. Функция называется инъективной, если она возвращает разные результаты для разных аргументов.

Может использоваться для оптимизации GROUP BY.

Синтаксис

concatWithSeparatorAssumeInjective(sep[, exp1, exp2, ... ])

Аргументы

  • sep — Используемый разделитель. const String or const FixedString
  • exp1, exp2, ... — Выражения для объединения. Аргументы типа, отличного от String или FixedString, преобразуются в строки с использованием сериализации по умолчанию. Поскольку это снижает производительность, использовать аргументы не типа String/FixedString не рекомендуется. String or FixedString

Возвращаемое значение

Возвращает строку String, полученную объединением аргументов. Если значение любого из аргументов равно NULL, функция возвращает NULL. String

Примеры

Пример использования

CREATE TABLE user_data (
user_id UInt32,
first_name String,
last_name String,
score UInt32
)
ENGINE = MergeTree
ORDER BY tuple();

INSERT INTO user_data VALUES
(1, 'John', 'Doe', 100),
(2, 'Jane', 'Smith', 150),
(3, 'John', 'Wilson', 120),
(4, 'Jane', 'Smith', 90);

SELECT
    concatWithSeparatorAssumeInjective('-', first_name, last_name) as full_name,
    sum(score) as total_score
FROM user_data
GROUP BY concatWithSeparatorAssumeInjective('-', first_name, last_name);
┌─full_name───┬─total_score─┐
│ Jane-Smith  │         240 │
│ John-Doe    │         100 │
│ John-Wilson │         120 │
└─────────────┴─────────────┘

conv

Добавленный в: v25.10.0

Преобразует числа между различными системами счисления.

Функция преобразует число из одной системы счисления в другую. Поддерживаются системы счисления от 2 до 36. Для систем счисления с основанием больше 10 для представления цифр 10–35 используются буквы A-Z (регистронезависимый поиск).

Эта функция совместима с функцией CONV() в MySQL.

Синтаксис

conv(number, from_base, to_base)

Аргументы

  • number — Число, которое нужно преобразовать. Может быть строкой или числовым типом. - from_base — Исходное основание системы счисления (2-36). Должно быть целым числом. - to_base — Целевое основание системы счисления (2-36). Должно быть целым числом.

Возвращаемое значение

Строковое представление числа в целевом основании системы счисления.

Примеры

Преобразование десятичного числа в двоичное

SELECT conv('10', 10, 2)
1010

Преобразовать число из шестнадцатеричной системы в десятичную

SELECT conv('FF', 16, 10)
255

Преобразование отрицательного числа

SELECT conv('-1', 10, 16)
FFFFFFFFFFFFFFFF

Преобразование двоичного числа в восьмеричную систему счисления

SELECT conv('1010', 2, 8)
12

convertCharset

Добавленный в: v1.1.0

Возвращает строку s, преобразованную из кодировки from в кодировку to.

Синтаксис

convertCharset(s, from, to)

Аргументы

  • s — Входная строка. String
  • from — Исходная кодировка символов. String
  • to — Целевая кодировка символов. String

Возвращаемое значение

Строка s, преобразованная из кодировки from в кодировку to. String

Примеры

Пример использования

SELECT convertCharset('Café', 'UTF-8', 'ISO-8859-1');
┌─convertCharset('Café', 'UTF-8', 'ISO-8859-1')─┐
│ Caf�                                           │
└───────────────────────────────────────────────┘

damerauLevenshteinDistance

Добавленный в: v24.1.0

Вычисляет расстояние Дамерау — Левенштейна между двумя строками байтов.

Синтаксис

damerauLevenshteinDistance(s1, s2)

Аргументы

  • s1 — Первая входная строка. String
  • s2 — Вторая входная строка. String

Возвращаемое значение

Возвращает расстояние Дамерау — Левенштейна между двумя строками. UInt64

Примеры

Пример использования

SELECT damerauLevenshteinDistance('clickhouse', 'mouse')
┌─damerauLevenshteinDistance('clickhouse', 'mouse')─┐
│                                                 6 │
└───────────────────────────────────────────────────┘

decodeHTMLComponent

Добавленный в: v23.9.0

Преобразует HTML-сущности в строке в соответствующие символы.

Синтаксис

decodeHTMLComponent(s)

Аргументы

  • s — строка, содержащая HTML-сущности для декодирования. String

Возвращаемое значение

Возвращает строку с декодированными HTML-сущностями. String

Примеры

Пример использования

SELECT decodeHTMLComponent('&lt;div&gt;Hello &amp; &quot;World&quot;&lt;/div&gt;')
┌─decodeHTMLComponent('&lt;div&gt;Hello &amp; &quot;World&quot;&lt;/div&gt;')─┐
│ <div>Hello & "World"</div>                                                  │
└─────────────────────────────────────────────────────────────────────────────┘

decodeXMLComponent

Добавленный в: v21.2.0

Декодирует XML-сущности в строке в соответствующие символы.

Синтаксис

decodeXMLComponent(s)

Аргументы

  • s — Строка, содержащая XML-сущности, которые нужно декодировать. String

Возвращаемое значение

Возвращает переданную строку с декодированными XML-сущностями. String

Примеры

Пример использования

SELECT decodeXMLComponent('&lt;tag&gt;Hello &amp; World&lt;/tag&gt;')
┌─decodeXMLComponent('&lt;tag&gt;Hello &amp; World&lt;/tag&gt;')─┐
│ <tag>Hello & World</tag>                                       │
└────────────────────────────────────────────────────────────────┘

editDistance

Добавленный в: v23.9.0

Вычисляет расстояние редактирования между двумя байтовыми строками.

Синтаксис

editDistance(s1, s2)

Псевдонимы: levenshteinDistance

Аргументы

  • s1 — Первая входная строка. String
  • s2 — Вторая входная строка. String

Возвращаемое значение

Возвращает расстояние редактирования между двумя строками. UInt64

Примеры

Пример использования

SELECT editDistance('clickhouse', 'mouse')
┌─editDistance('clickhouse', 'mouse')─┐
│                                   6 │
└─────────────────────────────────────┘

editDistanceUTF8

Добавленный в: v24.6.0

Вычисляет расстояние редактирования между двумя строками UTF-8.

Синтаксис

editDistanceUTF8(s1, s2)

Псевдонимы: levenshteinDistanceUTF8

Аргументы

  • s1 — Первая входная строка. String
  • s2 — Вторая входная строка. String

Возвращаемое значение

Возвращает расстояние редактирования между двумя строками в кодировке UTF-8. UInt64

Примеры

Пример использования

SELECT editDistanceUTF8('我是谁', '我是我') AS distance
┌─distance─┐
│        1 │
└──────────┘

encodeXMLComponent

Добавленный в: v21.1.0

Экранирует символы для вставки строки в текстовый узел XML или атрибут.

Синтаксис

encodeXMLComponent(s)

Аргументы

  • s — строка для экранирования. String

Возвращаемое значение

Экранированная строка. String

Примеры

Пример использования

SELECT
    '<tag>Hello & "World"</tag>' AS original,
    encodeXMLComponent('<tag>Hello & "World"</tag>') AS xml_encoded;
┌─original───────────────────┬─xml_encoded──────────────────────────────────────────┐
│ <tag>Hello & "World"</tag> │ &lt;tag&gt;Hello &amp; &quot;World&quot;&lt;/tag&gt; │
└────────────────────────────┴──────────────────────────────────────────────────────┘

endsWith

Добавленный в: v1.1.0

Проверяет, оканчивается ли строка заданным суффиксом.

Синтаксис

endsWith(s, suffix)

Аргументы

  • s — Проверяемая строка. String
  • suffix — Проверяемый суффикс. String

Возвращаемое значение

Возвращает 1, если s оканчивается на suffix, в противном случае 0. UInt8

Примеры

Пример использования

SELECT endsWith('ClickHouse', 'House');
┌─endsWith('ClickHouse', 'House')─┐
│                               1 │
└─────────────────────────────────┘

endsWithCaseInsensitive

Добавленный в: v25.10.0

Проверяет, оканчивается ли строка указанным регистронезависимым суффиксом.

Синтаксис

endsWithCaseInsensitive(s, suffix)

Аргументы

  • s — Строка для проверки. String
  • suffix — Регистронезависимый суффикс для проверки. String

Возвращаемое значение

Возвращает 1, если s заканчивается на регистронезависимый suffix, иначе 0. UInt8

Примеры

Пример использования

SELECT endsWithCaseInsensitive('ClickHouse', 'HOUSE');
┌─endsWithCaseInsensitive('ClickHouse', 'HOUSE')─┐
│                                              1 │
└────────────────────────────────────────────────┘

endsWithCaseInsensitiveUTF8

Добавленный в: v25.10.0

Возвращает, оканчивается ли строка s на регистронезависимый суффикс suffix. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определен.

Синтаксис

endsWithCaseInsensitiveUTF8(s, suffix)

Аргументы

  • s — проверяемая строка. String
  • suffix — регистронезависимый суффикс для проверки. String

Возвращаемое значение

Возвращает 1, если s оканчивается на регистронезависимый suffix, иначе — 0. UInt8

Примеры

Пример использования

SELECT endsWithCaseInsensitiveUTF8('данных', 'ых');
┌─endsWithCaseInsensitiveUTF8('данных', 'ых')─┐
│                                           1 │
└─────────────────────────────────────────────┘

endsWithUTF8

Добавленный в: v23.8.0

Возвращает, оканчивается ли строка s на suffix. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.

Синтаксис

endsWithUTF8(s, suffix)

Аргументы

  • s — Проверяемая строка. String
  • suffix — Проверяемый суффикс. String

Возвращаемое значение

Возвращает 1, если s оканчивается на suffix, иначе — 0. UInt8

Примеры

Пример использования

SELECT endsWithUTF8('данных', 'ых');
┌─endsWithUTF8('данных', 'ых')─┐
│                            1 │
└──────────────────────────────┘

extractTextFromHTML

Добавленный в: v21.3.0

Извлекает текстовое содержимое из HTML или XHTML.

Эта функция удаляет HTML-теги, комментарии и элементы script/style, оставляя только текст. Она выполняет:

  • Удаление всех HTML/XML-тегов
  • Удаление комментариев ({/* */})
  • Удаление элементов script и style вместе с их содержимым
  • Обработку секций CDATA (копируются дословно)
  • Корректную обработку и нормализацию пробельных символов

Примечание: HTML-сущности не декодируются; при необходимости их следует обрабатывать отдельной функцией.

Синтаксис

extractTextFromHTML(html)

Аргументы

  • htmlString, содержащая HTML-контент, из которого нужно извлечь текст. String

Возвращаемое значение

Возвращает извлечённый текст с нормализованными пробелами. String

Примеры

Пример использования

SELECT extractTextFromHTML('
<html>
    <head><title>Page Title</title></head>
    <body>
        <p>Hello <b>World</b>!</p>
        <script>alert("test");</script>
        <!-- comment -->
    </body>
</html>
');
┌─extractTextFromHTML('\n<html>\n    <head><title>Page Title</title></head>\n    <body>\n        <p>Hello <b>World</b>!</p>\n        <script>alert("test");</script>\n        <!-- comment -->\n    </body>\n</html>\n')─┐
│ Page Title Hello World !                                                                                                                                                                                               │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

firstLine

Добавленный в: v23.7.0

Возвращает первую строку из многострочной строки.

Синтаксис

firstLine(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает первую строку входной строки или всю строку, если в ней нет разделителей строк. String

Примеры

Пример использования

SELECT firstLine('foo\\nbar\\nbaz')
┌─firstLine('foo\\nbar\\nbaz')─┐
│ foo\nbar\nbaz                │
└──────────────────────────────┘

idnaDecode

Добавленный в: v24.1.0

Возвращает представление доменного имени в Unicode (UTF-8) (алгоритм ToUnicode) в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). В случае ошибки (например, если входная строка недопустима) возвращается исходная строка. Обратите внимание, что повторное применение idnaEncode() и idnaDecode() не обязательно возвращает исходную строку из-за нормализации регистра.

Синтаксис

idnaDecode(s)

Аргументы

  • s — входная строка. String

Возвращаемое значение

Возвращает представление входной строки в Unicode (UTF-8) в соответствии с механизмом IDNA для входного значения. String

Примеры

Пример использования

SELECT idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')
┌─idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')─┐
│ straße.münchen.de                             │
└───────────────────────────────────────────────┘

idnaEncode

Добавленный в: v24.1.0

Возвращает ASCII-представление (алгоритм ToASCII) доменного имени в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). Входная строка должна быть в кодировке UTF и допускать преобразование в ASCII-строку, в противном случае генерируется исключение.

Синтаксис

idnaEncode(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает ASCII-представление входной строки в соответствии с механизмом IDNA для входного значения. String

Примеры

Пример использования

SELECT idnaEncode('straße.münchen.de')
┌─idnaEncode('straße.münchen.de')─┐
│ xn--strae-oqa.xn--mnchen-3ya.de │
└─────────────────────────────────┘

initcap

Добавленный в: v23.7.0

Преобразует первую букву каждого слова в верхний регистр, а остальные — в нижний. Слова представляют собой последовательности буквенно-цифровых символов, разделённые небуквенно-цифровыми символами.

Синтаксис

initcap(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает s, в которой первая буква каждого слова преобразуется в верхний регистр. String

Примеры

Пример использования

SELECT initcap('building for fast')
┌─initcap('building for fast')─┐
│ Building For Fast            │
└──────────────────────────────┘

Пример известного поведения слов, содержащих апострофы или заглавные буквы

SELECT initcap('John''s cat won''t eat.');
┌─initcap('John\'s cat won\'t eat.')─┐
│ John'S Cat Won'T Eat.              │
└────────────────────────────────────┘

initcapUTF8

Добавленный в: v23.7.0

Как и initcap, initcapUTF8 преобразует первую букву каждого слова в верхний регистр, а остальные — в нижний. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.

Синтаксис

initcapUTF8(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает s, где первая буква каждого слова приведена к верхнему регистру. String

Примеры

Пример использования

SELECT initcapUTF8('не тормозит')
┌─initcapUTF8('не тормозит')─┐
│ Не Тормозит                │
└────────────────────────────┘

isValidASCII

Добавленный в: v25.9.0

Возвращает 1, если входная строка типа String или FixedString содержит только байты ASCII (0x00–0x7F), в противном случае — 0. Оптимизировано для положительного случая (когда входные данные являются корректным ASCII).

Синтаксис

isValidASCII(str)

Псевдонимы: isASCII

Аргументы

  • Отсутствуют.

Возвращаемое значение

Примеры

isValidASCII

SELECT isValidASCII('hello') AS is_ascii, isValidASCII('你好') AS is_not_ascii
┌─is_ascii─┬─is_not_ascii─┐
│        1 │            0 │
└──────────┴──────────────┘

isValidUTF8

Добавленный в: v20.1.0

Проверяет, является ли набор байтов корректным текстом в кодировке UTF-8.

Синтаксис

isValidUTF8(s)

Аргументы

  • s — Строка, которую нужно проверить на корректность UTF-8. String

Возвращаемое значение

Возвращает 1, если набор байтов представляет собой корректный текст в кодировке UTF-8, в противном случае — 0. UInt8

Примеры

Пример использования

SELECT isValidUTF8('\\xc3\\xb1') AS valid, isValidUTF8('\\xc3\\x28') AS invalid
┌─valid─┬─invalid─┐
│     1 │       1 │
└───────┴─────────┘

jaroSimilarity

Добавленный в: v24.1.0

Вычисляет меру сходства Джаро между двумя байтовыми строками.

Синтаксис

jaroSimilarity(s1, s2)

Аргументы

  • s1 — Первая входная строка. String
  • s2 — Вторая входная строка. String

Возвращаемое значение

Возвращает коэффициент сходства Джаро для двух строк. Float64

Примеры

Пример использования

SELECT jaroSimilarity('clickhouse', 'click')
┌─jaroSimilarity('clickhouse', 'click')─┐
│                    0.8333333333333333 │
└───────────────────────────────────────┘

jaroWinklerSimilarity

Добавленный в: v24.1.0

Вычисляет меру сходства Джаро — Винклера между двумя байтовыми строками.

Синтаксис

jaroWinklerSimilarity(s1, s2)

Аргументы

  • s1 — Первая входная строка. String
  • s2 — Вторая входная строка. String

Возвращаемое значение

Возвращает коэффициент сходства Джаро — Винклера для двух строк. Float64

Примеры

Пример использования

SELECT jaroWinklerSimilarity('clickhouse', 'click')
┌─jaroWinklerSimilarity('clickhouse', 'click')─┐
│                           0.8999999999999999 │
└──────────────────────────────────────────────┘

left

Добавленный в: v22.1.0

Возвращает подстроку строки s с указанным смещением offset, отсчитываемым слева.

Синтаксис

left(s, offset)

Аргументы

  • s — Строка, из которой извлекается подстрока. String или FixedString
  • offset — Смещение в байтах. (U)Int*

Возвращаемое значение

Возвращает:

  • Для положительного offset — подстроку строки s длиной offset байт, начиная слева.
  • Для отрицательного offset — подстроку строки s длиной length(s) - |offset| байт, начиная слева.
  • Пустую строку, если length равно 0. String

Примеры

Положительное смещение

SELECT left('Hello World', 5)
Hello

Отрицательное значение смещения

SELECT left('Hello World', -6)
Hello

leftPad

Добавленный в: v21.8.0

Дополняет строку слева пробелами или указанной строкой (при необходимости повторяя её), пока длина результирующей строки не достигнет указанного значения length.

Синтаксис

leftPad(string, length[, pad_string])

Псевдонимы: lpad

Аргументы

  • string — Входная строка, которую нужно дополнить. String
  • length — Длина результирующей строки. Если значение меньше длины входной строки, входная строка усекается до length символов. (U)Int*
  • pad_string — Необязательно. Строка, используемая для дополнения входной строки. Если не указана, входная строка дополняется пробелами. String

Возвращаемое значение

Возвращает строку заданной длины, дополненную слева. String

Примеры

Пример использования

SELECT leftPad('abc', 7, '*'), leftPad('def', 7)
┌─leftPad('abc', 7, '*')─┬─leftPad('def', 7)─┐
│ ****abc                │     def           │
└────────────────────────┴───────────────────┘

leftPadUTF8

Добавленный в: v21.8.0

Дополняет UTF8-строку слева пробелами или указанной строкой (при необходимости — многократно), пока итоговая строка не достигнет заданной длины. В отличие от leftPad, который измеряет длину строки в байтах, здесь длина строки измеряется в кодовых точках.

Синтаксис

leftPadUTF8(string, length[, pad_string])

Аргументы

  • string — Входная строка, которую нужно дополнить. String
  • length — Длина результирующей строки. Если это значение меньше длины входной строки, она укорачивается до length символов. (U)Int*
  • pad_string — Необязательно. Строка, которой дополняется входная строка. Если не указана, входная строка дополняется пробелами. String

Возвращаемое значение

Возвращает строку указанной длины, дополненную слева. String

Примеры

Пример использования

SELECT leftPadUTF8('абвг', 7, '*'), leftPadUTF8('дежз', 7)
┌─leftPadUTF8('абвг', 7, '*')─┬─leftPadUTF8('дежз', 7)─┐
│ ***абвг                     │    дежз                │
└─────────────────────────────┴────────────────────────┘

leftUTF8

Добавленный в: v22.1.0

Возвращает подстроку UTF-8-кодированной строки s с указанным смещением offset, отсчитываемым слева.

Синтаксис

leftUTF8(s, offset)

Аргументы

  • s — Строка в кодировке UTF-8, из которой вычисляется подстрока. String или FixedString
  • offset — Количество байтов смещения. (U)Int*

Возвращаемое значение

Возвращает:

  • Для положительного offset — подстроку s длиной offset байт, начиная с левой стороны строки.\n"
  • Для отрицательного offset — подстроку s длиной length(s) - |offset| байт, начиная с левой стороны строки.\n"
  • Пустую строку, если length равен 0. String

Примеры

Положительное смещение

SELECT leftUTF8('Привет', 4)
Прив

Отрицательное смещение

SELECT leftUTF8('Привет', -4)
Пр

lengthUTF8

Добавленный в: v1.1.0

Возвращает длину строки в кодовых точках Unicode, а не в байтах или символах. Чтобы вычислить длину строки в байтах, используйте функцию length. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.

Синтаксис

lengthUTF8(s)

Псевдонимы: CHARACTER_LENGTH, CHAR_LENGTH

Аргументы

  • s — строка, содержащая корректный текст в кодировке UTF-8. String

Возвращаемое значение

Длина строки s в кодовых точках Unicode. UInt64

Примеры

Пример использования

SELECT lengthUTF8('Здравствуй, мир!')
┌─lengthUTF8('Здравствуй, мир!')─┐
│                             16 │
└────────────────────────────────┘

lower

Добавленный в: v1.1.0

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

Синтаксис

lower(s)

Псевдонимы: lcase

Аргументы

  • s — Строка, которую нужно преобразовать в нижний регистр. String

Возвращаемое значение

Возвращает строку s, преобразованную в нижний регистр. String

Примеры

Пример использования

SELECT lower('CLICKHOUSE')
┌─lower('CLICKHOUSE')─┐
│ clickhouse          │
└─────────────────────┘

lowerUTF8

Добавленный в: v1.1.0

Преобразует строку в нижний регистр, предполагая, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, не сгенерировать исключение, а результат будет неопределённым.

Синтаксис

lowerUTF8(input)

Аргументы

  • input — Строка, которую нужно преобразовать в нижний регистр. String

Возвращаемое значение

Строка в нижнем регистре. String

Примеры

первый

SELECT lowerUTF8('München') as Lowerutf8;
münchen

naturalSortKey

Добавленный в: v26.3.0

Функция используется для естественной сортировки.

Синтаксис

naturalSortKey(s)

Псевдонимы: NATURAL_SORT_KEY

Аргументы

  • s — строка, преобразуемая в ключ естественной сортировки. String

Возвращаемое значение

Возвращает строку ключа естественной сортировки, полученную из s. String

Примеры

Пример использования

CREATE TABLE t (s String) ENGINE = Memory;
INSERT INTO t VALUES ('a1'), ('a02');

SELECT s FROM t ORDER BY naturalSortKey(s);
┌─s───┐
│ a1  │
│ a02 │
└─────┘

normalizeUTF8NFC

Добавленный в: v21.11.0

Нормализует строку в кодировке UTF-8 в соответствии с формой нормализации NFC.

Синтаксис

normalizeUTF8NFC(str)

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

Возвращает строку UTF-8 в нормализованной форме NFC. String

Примеры

Пример использования

SELECT
'é' AS original, -- e + комбинирующий акут (U+0065 + U+0301)
length(original),
normalizeUTF8NFC('é') AS nfc_normalized, -- é (U+00E9)
length(nfc_normalized);
┌─original─┬─length(original)─┬─nfc_normalized─┬─length(nfc_normalized)─┐
│ é        │                2 │ é              │                      2 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘

normalizeUTF8NFD

Добавленный в: v21.11.0

Нормализует строку в кодировке UTF-8 в соответствии с формой нормализации NFD.

Синтаксис

normalizeUTF8NFD(str)

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

Возвращает строку в нормализованной форме NFD в кодировке UTF-8. String

Примеры

Пример использования

SELECT
    'é' AS original, -- é (U+00E9)
    length(original),
    normalizeUTF8NFD('é') AS nfd_normalized, -- e + комбинирующий акут (U+0065 + U+0301)
    length(nfd_normalized);
┌─original─┬─length(original)─┬─nfd_normalized─┬─length(nfd_normalized)─┐
│ é        │                2 │ é              │                      3 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘

normalizeUTF8NFKC

Добавленный в: v21.11.0

Нормализует строку в кодировке UTF-8 в соответствии с формой нормализации NFKC.

Синтаксис

normalizeUTF8NFKC(str)

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

Возвращает строку в кодировке UTF-8 в нормализованной форме NFKC. String

Примеры

Пример использования

SELECT
    '① ② ③' AS original,                           -- Circled number characters
    normalizeUTF8NFKC('① ② ③') AS nfkc_normalized  -- Converts to 1 2 3
┌─original─┬─nfkc_normalized─┐
│ ① ② ③    │ 1 2 3           │
└──────────┴─────────────────┘

normalizeUTF8NFKCCasefold

Добавленный в: v26.3.0

Нормализует строку UTF-8 в соответствии с формой нормализации NFKC_Casefold, которая применяет нормализацию NFKC, а затем свёртку регистра. Это полезно при регистронезависимом сопоставлении идентификаторов.

Синтаксис

normalizeUTF8NFKCCasefold(str)

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

Возвращает строку в нормализованной форме NFKC_Casefold. String

Примеры

Пример использования

SELECT
    'Ä ① Hello' AS original,
    normalizeUTF8NFKCCasefold('Ä ① Hello') AS nfkc_cf_normalized;
┌─original──┬─nfkc_cf_normalized─┐
│ Ä ① Hello │ ä 1 hello          │
└───────────┴────────────────────┘

normalizeUTF8NFKD

Добавленный в: v21.11.0

Нормализует строку в кодировке UTF-8 в соответствии с формой нормализации NFKD.

Синтаксис

normalizeUTF8NFKD(str)

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

Возвращает строку в нормализованной форме NFKD. String

Примеры

Пример использования

SELECT
    'H₂O²' AS original,                           -- H + subscript 2 + O + superscript 2
    normalizeUTF8NFKD('H₂O²') AS nfkd_normalized  -- Converts to H 2 O 2
┌─original─┬─nfkd_normalized─┐
│ H₂O²     │ H2O2            │
└──────────┴─────────────────┘

punycodeDecode

Добавленный в: v24.1.0

Возвращает открытый текст в кодировке UTF-8 для строки, закодированной в Punycode. Если передана некорректная строка в кодировке Punycode, генерируется исключение.

Синтаксис

punycodeDecode(s)

Аргументы

  • s — строка, закодированная в Punycode. String

Возвращаемое значение

Возвращает открытый текст входного значения. String

Примеры

Пример использования

SELECT punycodeDecode('Mnchen-3ya')
┌─punycodeDecode('Mnchen-3ya')─┐
│ München                      │
└──────────────────────────────┘

punycodeEncode

Добавленный в: v24.1.0

Возвращает строку в представлении Punycode. Строка должна быть закодирована в UTF-8, в противном случае поведение не определено.

Синтаксис

punycodeEncode(s)

Аргументы

  • s — Входное значение. String

Возвращаемое значение

Возвращает входное значение в представлении Punycode. String

Примеры

Пример использования

SELECT punycodeEncode('München')
┌─punycodeEncode('München')─┐
│ Mnchen-3ya                │
└───────────────────────────┘

regexpExtract

Добавленный в: v23.2.0

Извлекает из haystack первую подстроку, которая соответствует шаблону регулярного выражения и указанному индексу группы.

Синтаксис

regexpExtract(haystack, pattern[, index])

Псевдонимы: REGEXP_EXTRACT, REGEXP_SUBSTR

Аргументы

  • haystack — String, строка, в которой ищется совпадение с шаблоном регулярного выражения. String
  • pattern — String, шаблон регулярного выражения. pattern может содержать несколько групп регулярного выражения, а index указывает, какую именно группу нужно извлечь. Индекс 0 означает совпадение со всем регулярным выражением. const String
  • index — Необязательный. Неотрицательное целое число, указывающее, какую группу регулярного выражения нужно извлечь. По умолчанию используется 1, если pattern содержит хотя бы одну захватывающую группу, и 0 (всё совпадение), если pattern не содержит захватывающих групп. (U)Int*

Возвращаемое значение

Возвращает совпадение в виде строки String

Примеры

Пример использования

SELECT
    regexpExtract('100-200', '(\\d+)-(\\d+)', 1),
    regexpExtract('100-200', '(\\d+)-(\\d+)', 2),
    regexpExtract('100-200', '(\\d+)-(\\d+)', 0),
    regexpExtract('100-200', '(\\d+)-(\\d+)'),
    regexpExtract('100-200', '\\d+');
┌─regexpExtract('100-200', '(\\d+)-(\\d+)', 1)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)', 2)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)', 0)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)')─┬─regexpExtract('100-200', '\\d+')─┐
│ 100                                          │ 200                                          │ 100-200                                      │ 100                                       │ 100                              │
└──────────────────────────────────────────────┴──────────────────────────────────────────────┴──────────────────────────────────────────────┴───────────────────────────────────────────┴──────────────────────────────────┘

regexpPosition

Добавленный в: v26.5.0

Возвращает позицию в байтах (с отсчётом от 1) occurrence-го вхождения pattern в haystack, начиная поиск с байтовой позиции position.

Если return_option равен 0 (по умолчанию), возвращается позиция первого байта совпадения. Если 1 — позиция первого байта после совпадения.

Если subexpression больше 0, вместо позиции всего совпадения возвращается позиция соответствующей группы захвата.

Возвращает 0, если совпадение не найдено или если запрошенная группа захвата не участвовала в совпадении.

Функция предоставляется для совместимости с regexp_instr в PostgreSQL (и также доступна под этим псевдонимом). Обратите внимание: позиции измеряются в байтах, как и в других функциях ClickHouse для работы с регулярными выражениями; в PostgreSQL regexp_instr использует символьные позиции.

Синтаксис

regexpPosition(haystack, pattern[, position[, occurrence[, return_option[, flags[, subexpression]]]]])

Псевдонимы: regexpInstr, regexp_instr

Аргументы

  • haystack — Строка, в которой выполняется поиск. String
  • pattern — Шаблон регулярного выражения. const String
  • position — Необязательно. Позиция в байтах, начиная с 1, с которой начинается поиск. По умолчанию: 1. (U)Int*
  • occurrence — Необязательно. Какое по счёту совпадение вернуть. По умолчанию: 1. (U)Int*
  • return_option — Необязательно. 0 возвращает позицию начала совпадения, 1 — позицию сразу после совпадения. По умолчанию: 0. (U)Int*
  • flags — Необязательно. Флаги регулярного выражения. Поддерживаются: i (регистронезависимый), c (с учётом регистра), m/n (многострочные якоря), s (точка соответствует символу новой строки). По умолчанию: пустая строка. const String
  • subexpression — Необязательно. Индекс группы захвата, позицию которой нужно вернуть. 0 означает всё совпадение. По умолчанию: 0. (U)Int*

Возвращаемое значение

Возвращает позицию совпадения в байтах или 0, если совпадение не найдено. UInt64

Примеры

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

SELECT
    regexpPosition('hello world', 'world'),
    regexpPosition('aXbXcXd', 'X', 1, 2),
    regexpPosition('aXbXcXd', 'X', 1, 2, 1),
    regexpPosition('Hello WORLD', 'world', 1, 1, 0, 'i'),
    regexpPosition('foo123bar456', '([a-z]+)([0-9]+)', 1, 2, 0, '', 2);
┌─regexpPosition('hello world', 'world')─┬─regexpPosition('aXbXcXd', 'X', 1, 2)─┬─regexpPosition('aXbXcXd', 'X', 1, 2, 1)─┬─regexpPosition('Hello WORLD', 'world', 1, 1, 0, 'i')─┬─regexpPosition('foo123bar456', '([a-z]+)([0-9]+)', 1, 2, 0, '', 2)─┐
│                                      7 │                                    4 │                                       5 │                                                    7 │                                                                 10 │
└────────────────────────────────────────┴──────────────────────────────────────┴─────────────────────────────────────────┴──────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────┘

removeDiacriticsUTF8

Добавленный в: v26.3.0

Удаляет диакритические знаки (акценты) из строки в кодировке UTF-8, разлагая символы с помощью NFD, удаляя комбинируемые знаки (категория Unicode Mn), а затем повторно компонуя их с помощью NFC.

Синтаксис

removeDiacriticsUTF8(str)

Псевдонимы: removeAccentsUTF8

Аргументы

  • str — входная строка в кодировке UTF-8. String

Возвращаемое значение

Строка в кодировке UTF-8 без диакритических знаков. String

Примеры

Базовое удаление диакритических знаков

SELECT removeDiacriticsUTF8('café résumé naïve')
┌─removeDiacriticsUTF8('café résumé naïve')─┐
│ cafe resume naive                         │
└───────────────────────────────────────────┘

repeat

Добавленный в: v20.1.0

Повторяет строку указанное количество раз.

Синтаксис

repeat(s, n)

Аргументы

  • s — строка, которую нужно повторить. String
  • n — количество повторений строки. (U)Int*

Возвращаемое значение

Строка, содержащая строку s, повторённую n раз. Если n отрицательно, функция возвращает пустую строку. String

Примеры

Пример использования

SELECT repeat('abc', 10)
┌─repeat('abc', 10)──────────────┐
│ abcabcabcabcabcabcabcabcabcabc │
└────────────────────────────────┘

reverseUTF8

Добавленный в: v1.1.0

Обращает последовательность кодовых точек Unicode в строке. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, не сгенерировать исключение, а результат не определён.

Синтаксис

reverseUTF8(s)

Аргументы

  • s — String, содержащая корректный текст в кодировке UTF-8. String

Возвращаемое значение

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

Примеры

Пример использования

SELECT reverseUTF8('ClickHouse')
esuoHkcilC

Добавленный в: v22.1.0

Возвращает подстроку строки s с заданным смещением offset от правого края.

Синтаксис

right(s, offset)

Аргументы

  • s — Строка, из которой извлекается подстрока. String или FixedString
  • offset — Количество байт смещения. (U)Int*

Возвращаемое значение

Возвращает:

  • Для положительного offset — подстроку s длиной offset байт, отсчитываемую от конца строки.
  • Для отрицательного offset — подстроку s длиной length(s) - |offset| байт, отсчитываемую от конца строки.
  • Пустую строку, если length равно 0. String

Примеры

Положительное смещение

SELECT right('Hello', 3)
llo

Отрицательное смещение

SELECT right('Hello', -3)
lo

rightPad

Добавленный в: v21.8.0

Дополняет строку справа пробелами или указанной строкой (при необходимости — повторяя её), пока итоговая строка не достигнет заданной length.

Синтаксис

rightPad(string, length[, pad_string])

Псевдонимы: rpad

Аргументы

  • string — Исходная строка, которую нужно дополнить. String
  • length — Длина результирующей строки. Если значение меньше длины входной строки, входная строка укорачивается до length символов. (U)Int*
  • pad_string — Необязательно. Строка, которой дополняется исходная строка. Если не указана, исходная строка дополняется пробелами. String

Возвращаемое значение

Возвращает строку заданной длины, дополненную справа. String

Примеры

Пример использования

SELECT rightPad('abc', 7, '*'), rightPad('abc', 7)
┌─rightPad('abc', 7, '*')─┬─rightPad('abc', 7)─┐
│ abc****                 │ abc                │
└─────────────────────────┴────────────────────┘

rightPadUTF8

Добавленный в: v21.8.0

Дополняет строку справа пробелами или указанной строкой (при необходимости повторяя её), пока итоговая строка не достигнет заданной длины. В отличие от rightPad, который измеряет длину строки в байтах, здесь длина строки измеряется в кодовых точках.

Синтаксис

rightPadUTF8(string, length[, pad_string])

Аргументы

  • string — Входная строка, которую нужно дополнить. String
  • length — Длина результирующей строки. Если значение меньше длины входной строки, входная строка укорачивается до length символов. (U)Int*
  • pad_string — Необязательно. Строка, которой дополняется входная строка. Если не указана, входная строка дополняется пробелами. String

Возвращаемое значение

Возвращает строку заданной длины, дополненную справа. String

Примеры

Пример использования

SELECT rightPadUTF8('абвг', 7, '*'), rightPadUTF8('абвг', 7)
┌─rightPadUTF8('абвг', 7, '*')─┬─rightPadUTF8('абвг', 7)─┐
│ абвг***                      │ абвг                    │
└──────────────────────────────┴─────────────────────────┘

rightUTF8

Добавленный в: v22.1.0

Возвращает подстроку UTF-8-кодированной строки s с указанным offset, отсчитываемым справа.

Синтаксис

rightUTF8(s, offset)

Аргументы

  • s — Строка в кодировке UTF-8, из которой извлекается подстрока. String или FixedString
  • offset — Смещение в байтах. (U)Int*

Возвращаемое значение

Возвращает:

  • Для положительного offset — подстроку s длиной offset байт, отсчитываемую от конца строки.
  • Для отрицательного offset — подстроку s длиной length(s) - |offset| байт, отсчитываемую от конца строки.
  • Пустую строку, если length равно 0. String

Примеры

Положительное смещение

SELECT rightUTF8('Привет', 4)
ивет

Отрицательный OFFSET

SELECT rightUTF8('Привет', -4)
ет

soundex

Добавленный в: v23.4.0

Возвращает код Soundex для строки.

Синтаксис

soundex(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает код Soundex для входной строки. String

Примеры

Пример использования

SELECT soundex('aksel')
┌─soundex('aksel')─┐
│ A240             │
└──────────────────┘

space

Добавленный в: v23.5.0

Повторяет пробел ( ) указанное количество раз.

Синтаксис

space(n)

Аргументы

  • n — Количество повторений пробела. (U)Int*

Возвращаемое значение

Возвращает строку из n пробелов. Если n <= 0, функция возвращает пустую строку. String

Примеры

Пример использования

SELECT space(3) AS res, length(res);
┌─res─┬─length(res)─┐
│     │           3 │
└─────┴─────────────┘

sparseGrams

Добавленный в: v25.5.0

Находит все подстроки заданной строки длиной не менее n, для которых хеши (n-1)-грамм на границах подстроки строго больше хешей любой (n-1)-граммы внутри неё. Использует CRC32 в качестве хеш-функции.

Синтаксис

sparseGrams(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Необязательно. Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимально допустимое значение — 3. UInt*
  • max_ngram_length — Необязательно. Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Должно быть не меньше min_ngram_length. UInt*
  • min_cutoff_length — Необязательно. Если указано, возвращаются только n-граммы длиной не меньше min_cutoff_length. Значение по умолчанию совпадает с min_ngram_length. Должно быть не меньше min_ngram_length и не больше max_ngram_length. UInt*

Возвращаемое значение

Возвращает массив выбранных подстрок. Array(String)

Примеры

Пример использования

SELECT sparseGrams('alice', 3)
┌─sparseGrams('alice', 3)────┐
│ ['ali','lic','ice','lice'] │
└────────────────────────────┘

sparseGramsHashes

Добавленный в: v25.5.0

Находит хеши всех подстрок заданной строки длиной не менее n, у которых хеши (n-1)-грамм на границах подстроки строго больше хешей любой (n-1)-граммы внутри подстроки. Использует CRC32 в качестве хеш-функции.

Синтаксис

sparseGramsHashes(s[, min_ngram_length, max_ngram_length])

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Необязательно. Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимально допустимое значение — 3. UInt*
  • max_ngram_length — Необязательно. Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Должно быть не меньше min_ngram_length. UInt*
  • min_cutoff_length — Необязательно. Если указано, возвращаются только n-граммы длиной не меньше min_cutoff_length. Значение по умолчанию совпадает с min_ngram_length. Должно быть не меньше min_ngram_length и не больше max_ngram_length. UInt*

Возвращаемое значение

Возвращает массив CRC32-хешей выбранных подстрок. Array(UInt32)

Примеры

Пример использования

SELECT sparseGramsHashes('alice', 3)
┌─sparseGramsHashes('alice', 3)────────────────┐
│ [3851133533,3120039944,646693941,2577359366] │
└──────────────────────────────────────────────┘

sparseGramsHashesUTF8

Добавленный в: v25.5.0

Находит хеши всех подстрок заданной UTF-8 строки длиной не менее n, для которых хеши (n-1)-грамм на границах подстроки строго больше, чем у любой (n-1)-граммы внутри подстроки. Ожидает UTF-8 строку; в случае недопустимой последовательности UTF-8 генерирует исключение. Использует CRC32 как хеш-функцию.

Синтаксис

sparseGramsHashesUTF8(s[, min_ngram_length, max_ngram_length])

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Необязательно. Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимально допустимое значение — 3. UInt*
  • max_ngram_length — Необязательно. Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Должно быть не меньше min_ngram_length. UInt*
  • min_cutoff_length — Необязательно. Если указано, возвращаются только n-граммы длиной не меньше min_cutoff_length. Значение по умолчанию совпадает с min_ngram_length. Должно быть не меньше min_ngram_length и не больше max_ngram_length. UInt*

Возвращаемое значение

Возвращает массив CRC32-хэшей выбранных UTF-8-подстрок. Array(UInt32)

Примеры

Пример использования

SELECT sparseGramsHashesUTF8('алиса', 3)
┌─sparseGramsHashesUTF8('алиса', 3)───────────────────────┐
│ [1328958118,547287748,4155892324,2403052185,1673399070] │
└─────────────────────────────────────────────────────────┘

sparseGramsUTF8

Добавленный в: v25.5.0

Находит все подстроки заданной UTF-8 строки длиной не менее n, у которых хеши (n-1)-грамм на границах подстроки строго больше, чем у любой (n-1)-граммы внутри неё. Ожидает UTF-8 строку; генерирует исключение при недопустимой последовательности UTF-8. Использует CRC32 в качестве хеш-функции.

Синтаксис

sparseGramsUTF8(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])

Аргументы

  • s — Входная строка. String
  • min_ngram_length — Необязательно. Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимально допустимое значение — 3. UInt*
  • max_ngram_length — Необязательно. Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Должно быть не меньше min_ngram_length. UInt*
  • min_cutoff_length — Необязательно. Если параметр указан, возвращаются только n-граммы длиной не менее min_cutoff_length. Значение по умолчанию совпадает со значением min_ngram_length. Должно быть не меньше min_ngram_length и не больше max_ngram_length. UInt*

Возвращаемое значение

Возвращает массив выбранных UTF-8-подстрок. Array(String)

Примеры

Пример использования

SELECT sparseGramsUTF8('алиса', 3)
┌─sparseGramsUTF8('алиса', 3)────────┐
│ ['али','лис','иса','лиса','алиса'] │
└────────────────────────────────────┘

startsWith

Добавленный в: v1.1.0

Проверяет, начинается ли строка с заданной подстроки.

Синтаксис

startsWith(s, prefix)

Аргументы

  • s — Строка для проверки. String
  • prefix — Префикс, наличие которого нужно проверить. String

Возвращаемое значение

Возвращает 1, если s начинается с prefix, иначе — 0. UInt8

Примеры

Пример использования

SELECT startsWith('ClickHouse', 'Click');
┌─startsWith('ClickHouse', 'Click')─┐
│                                 1 │
└───────────────────────────────────┘

startsWithCaseInsensitive

Добавленный в: v25.10.0

Проверяет, начинается ли строка с указанной регистронезависимой строки.

Синтаксис

startsWithCaseInsensitive(s, prefix)

Аргументы

  • s — Строка, которую нужно проверить. String
  • prefix — Регистронезависимый префикс, наличие которого нужно проверить. String

Возвращаемое значение

Возвращает 1, если s начинается с регистронезависимого prefix, в противном случае — 0. UInt8

Примеры

Пример использования

SELECT startsWithCaseInsensitive('ClickHouse', 'CLICK');
┌─startsWithCaseInsensitive('ClickHouse', 'CLICK')─┐
│                                                1 │
└──────────────────────────────────────────────────┘

startsWithCaseInsensitiveUTF8

Добавленный в: v25.10.0

Проверяет, начинается ли строка с указанного регистронезависимого префикса. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.

Синтаксис

startsWithCaseInsensitiveUTF8(s, prefix)

Аргументы

  • s — Строка, которую нужно проверить. String
  • prefix — Регистронезависимый префикс, наличие которого нужно проверить. String

Возвращаемое значение

Возвращает 1, если s начинается с регистронезависимого prefix, иначе 0. UInt8

Примеры

Пример использования

SELECT startsWithCaseInsensitiveUTF8('приставка', 'при')
┌─startsWithCaseInsensitiveUTF8('приставка', 'при')─┐
│                                                 1 │
└───────────────────────────────────────────────────┘

startsWithUTF8

Добавленный в: v23.8.0

Проверяет, начинается ли строка с указанного префикса. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.

Синтаксис

startsWithUTF8(s, prefix)

Аргументы

  • s — Строка, которую нужно проверить. String
  • prefix — Префикс, наличие которого нужно проверить. String

Возвращаемое значение

Возвращает 1, если s начинается с prefix, иначе — 0. UInt8

Примеры

Пример использования

SELECT startsWithUTF8('приставка', 'при')
┌─startsWithUTF8('приставка', 'при')─┐
│                                  1 │
└────────────────────────────────────┘

stringBytesEntropy

Добавленный в: v25.6.0

Вычисляет энтропию Шеннона распределения байтов в строке.

Синтаксис

stringBytesEntropy(s)

Аргументы

  • s — строка для анализа. String

Возвращаемое значение

Возвращает энтропию Шеннона для распределения байтов в строке. Float64

Примеры

Пример использования

SELECT stringBytesEntropy('Hello, world!')
┌─stringBytesEntropy('Hello, world!')─┐
│                   3.180832987205441 │
└─────────────────────────────────────┘

stringBytesUniq

Добавленный в: v25.6.0

Подсчитывает число уникальных байтов в строке.

Синтаксис

stringBytesUniq(s)

Аргументы

  • s — анализируемая строка. String

Возвращаемое значение

Количество различных байтов в строке. UInt16

Примеры

Пример использования

SELECT stringBytesUniq('Hello')
┌─stringBytesUniq('Hello')─┐
│                        4 │
└──────────────────────────┘

stringJaccardIndex

Добавленный в: v23.11.0

Вычисляет индекс сходства Жаккара для двух байтовых строк.

Синтаксис

stringJaccardIndex(s1, s2)

Аргументы

  • s1 — Первая входная строка. String
  • s2 — Вторая входная строка. String

Возвращаемое значение

Возвращает индекс сходства по Жаккару для двух строк. Float64

Примеры

Пример использования

SELECT stringJaccardIndex('clickhouse', 'mouse')
┌─stringJaccardIndex('clickhouse', 'mouse')─┐
│                                       0.4 │
└───────────────────────────────────────────┘

stringJaccardIndexUTF8

Добавленный в: v23.11.0

Аналог stringJaccardIndex, но для строк в кодировке UTF8.

Синтаксис

stringJaccardIndexUTF8(s1, s2)

Аргументы

  • s1 — Первая входная строка в кодировке UTF-8. String
  • s2 — Вторая входная строка в кодировке UTF-8. String

Возвращаемое значение

Возвращает индекс сходства Жаккара для двух строк в кодировке UTF-8. Float64

Примеры

Пример использования

SELECT stringJaccardIndexUTF8('我爱你', '我也爱你') AS jaccard_index
┌─jaccard_index─┐
│          0.75 │
└───────────────┘

substring

Добавленный в: v1.1.0

Возвращает подстроку строки s, начинающуюся с указанного байтового смещения offset. Подсчёт байтов начинается с 1 по следующей логике:

  • Если offset равен 0, возвращается пустая строка.
  • Если offset отрицательный, подстрока начинается на offset символов от конца строки, а не от её начала.

Необязательный аргумент length задаёт максимальное количество байтов в возвращаемой подстроке.

См. также функцию digits, которая выполняет аналогичную операцию с цифрами числа.

Синтаксис

substring(s, offset[, length])

Псевдонимы: byteSlice, mid, substr

Аргументы

  • s — Строка, из которой извлекается подстрока. String или FixedString или Enum
  • offset — Начальная позиция подстроки в s. (U)Int*
  • length — Необязательный параметр. Максимальная длина подстроки. (U)Int*

Возвращаемое значение

Возвращает подстроку из s длиной length байт, начиная с индекса offset. String

Примеры

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

SELECT 'database' AS db, substr(db, 5), substr(db, 5, 1)
┌─db───────┬─substr(db, 5)─┬─substr(db, 5, 1)─┐
│ database │ base          │ b                │
└──────────┴───────────────┴──────────────────┘

substringIndex

Добавленный в: v23.7.0

Возвращает подстроку s до первых count вхождений разделителя delim, как в Spark или MySQL.

Синтаксис

substringIndex(s, delim, count)

Псевдонимы: SUBSTRING_INDEX

Аргументы

  • s — Строка, из которой нужно извлечь подстроку. String
  • delim — Символ-разделитель. String
  • count — Количество вхождений разделителя, которое нужно учесть перед извлечением подстроки. Если count положительный, возвращается всё слева от последнего разделителя (считая слева). Если count отрицательный, возвращается всё справа от последнего разделителя (считая справа). UInt или Int

Возвращаемое значение

Возвращает подстроку строки s до count-го вхождения delim. String

Примеры

Пример использования

SELECT substringIndex('www.clickhouse.com', '.', 2)
┌─substringIndex('www.clickhouse.com', '.', 2)─┐
│ www.clickhouse                               │
└──────────────────────────────────────────────┘

substringIndexUTF8

Добавленный в: v23.7.0

Возвращает подстроку s до count вхождений разделителя delim; функция работает с кодовыми точками Unicode. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.

Синтаксис

substringIndexUTF8(s, delim, count)

Аргументы

  • s — Строка, из которой извлекается подстрока. String
  • delim — Символ-разделитель. String
  • count — Количество вхождений разделителя, которое нужно отсчитать перед извлечением подстроки. Если count положительный, возвращается всё слева от последнего разделителя (при отсчёте слева). Если count отрицательный, возвращается всё справа от последнего разделителя (при отсчёте справа). UInt или Int

Возвращаемое значение

Возвращает подстроку s до count-го вхождения delim. String

Примеры

Пример UTF8

SELECT substringIndexUTF8('www.straßen-in-europa.de', '.', 2)
www.straßen-in-europa

substringUTF8

Добавленный в: v1.1.0

Возвращает подстроку строки s, начинающуюся с указанной кодовой точки с индексом offset. Отсчет кодовых точек начинается с 1 по следующей логике:

  • Если offset равен 0, возвращается пустая строка.
  • Если offset отрицательный, подстрока начинается с кодовой точки, расположенной на offset позиций от конца строки, а не от начала.

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

Синтаксис

substringUTF8(s, offset[, length])

Аргументы

  • s — Строка, из которой извлекается подстрока. String или FixedString или Enum
  • offset — Начальная позиция подстроки в s. Int или UInt
  • length — Максимальная длина подстроки. Необязательный параметр. Int или UInt

Возвращаемое значение

Возвращает подстроку из s длиной length кодовых точек, начиная с кодовой точки с индексом offset. String

Примеры

Пример использования

SELECT 'Täglich grüßt das Murmeltier.' AS str, substringUTF8(str, 9), substringUTF8(str, 9, 5)
Täglich grüßt das Murmeltier.	grüßt das Murmeltier.	grüßt

toValidUTF8

Добавленный в: v20.1.0

Преобразует строку в корректную UTF-8-последовательность, заменяя любые недопустимые символы UTF-8 символом замены (U+FFFD). Если обнаруживается несколько недопустимых символов подряд, они заменяются одним символом замены.

Синтаксис

toValidUTF8(s)

Аргументы

  • s — Любая последовательность байтов, представленная объектом типа данных String. String

Возвращаемое значение

Возвращает допустимую строку UTF-8. String

Примеры

Пример использования

SELECT toValidUTF8('\\x61\\xF0\\x80\\x80\\x80b')
\\x61\\xF0\\x80\\x80\\x80b

trimBoth

Добавленный в: v20.1.0

Удаляет указанные символы в начале и конце строки. По умолчанию удаляет стандартные символы-пробелы (ASCII).

Синтаксис

trimBoth(s[, trim_characters])

Псевдонимы: trim

Аргументы

  • s — Обрезаемая строка. String
  • trim_characters — Необязательно. Символы, которые нужно удалить. Если не указано, удаляются стандартные пробельные символы. String

Возвращаемое значение

Возвращает строку, у которой указанные символы удалены с обоих концов. String

Примеры

Пример использования

SELECT trimBoth('$$ClickHouse$$', '$')
┌─trimBoth('$$ClickHouse$$', '$')─┐
│ ClickHouse                      │
└─────────────────────────────────┘

trimLeft

Добавленный в: v20.1.0

Удаляет указанные символы в начале строки. По умолчанию удаляет распространённые пробельные символы (ASCII).

Синтаксис

trimLeft(input[, trim_characters])

Псевдонимы: ltrim

Аргументы

  • input — Строка, из которой удаляются символы. String
  • trim_characters — Необязательно. Символы, которые нужно удалить. Если не указано, удаляются распространённые пробельные символы. String

Возвращаемое значение

Возвращает строку, из которой указанные символы удалены слева. String

Примеры

Пример использования

SELECT trimLeft('ClickHouse', 'Click');
┌─trimLeft('ClickHouse', 'Click')─┐
│ House                           │
└─────────────────────────────────┘

trimRight

Добавленный в: v20.1.0

Удаляет указанные символы с конца строки. По умолчанию удаляет стандартные пробельные символы (ASCII).

Синтаксис

trimRight(s[, trim_characters])

Псевдонимы: rtrim

Аргументы

  • s — Строка, из которой нужно удалить символы. String
  • trim_characters — Необязательные символы для удаления. Если не указаны, удаляются обычные пробельные символы. String

Возвращаемое значение

Возвращает строку, у которой указанные символы удалены справа. String

Примеры

Пример использования

SELECT trimRight('ClickHouse','House');
┌─trimRight('ClickHouse', 'House')─┐
│ Click                            │
└──────────────────────────────────┘

tryBase32Decode

Добавленный в: v25.6.0

Принимает строку и декодирует её по схеме кодирования Base32.

Синтаксис

tryBase32Decode(encoded)

Аргументы

  • encoded — столбец String или константа, которую нужно декодировать. Если строка не является корректной строкой в кодировке Base32, то в случае ошибки возвращается пустая строка. String

Возвращаемое значение

Возвращает строку, содержащую декодированное значение аргумента. String

Примеры

Пример использования

SELECT tryBase32Decode('IVXGG33EMVSA====');
┌─tryBase32Decode('IVXGG33EMVSA====')─┐
│ Encoded                             │
└─────────────────────────────────────┘

tryBase58Decode

Добавленный в: v22.10.0

Аналогично base58Decode, но в случае ошибки возвращает пустую строку.

Синтаксис

tryBase58Decode(encoded[, expected_size])

Аргументы

  • encoded — Столбец типа String или константа. Если строка некорректно закодирована в Base58, в случае ошибки возвращается пустая строка. String
  • expected_size — Необязательно. Ожидаемый размер декодированного значения в байтах. Если указано 32 или 64, используется оптимизированный декодер; для других значений используется универсальный декодер. UInt8, UInt16, UInt32, or UInt64

Возвращаемое значение

Возвращает строку с декодированным значением аргумента. String

Примеры

Пример использования

SELECT tryBase58Decode('3dc8KtHrwM') AS res, tryBase58Decode('invalid') AS res_invalid;
┌─res─────┬─res_invalid─┐
│ Encoded │             │
└─────────┴─────────────┘

tryBase64Decode

Добавленный в: v18.16.0

Аналогично base64Decode, но в случае ошибки возвращает пустую строку.

Синтаксис

tryBase64Decode(encoded)

Аргументы

  • encoded — столбец String или константа для декодирования. Если строка не является корректной строкой в кодировке Base64, в случае ошибки возвращается пустая строка. String

Возвращаемое значение

Возвращает строку, содержащую декодированное значение аргумента. String

Примеры

Пример использования

SELECT tryBase64Decode('Y2xpY2tob3VzZQ==')
┌─tryBase64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse                          │
└─────────────────────────────────────┘

tryBase64URLDecode

Добавленный в: v18.16.0

Аналогична base64URLDecode, но в случае ошибки возвращает пустую строку.

Синтаксис

tryBase64URLDecode(encoded)

Аргументы

  • encoded — столбец типа String или константа для декодирования. Если строка не является допустимой строкой в кодировке Base64, то в случае ошибки возвращается пустая строка. String

Возвращаемое значение

Возвращает строку с декодированным значением аргумента. String

Примеры

Пример использования

SELECT tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
┌─tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com                               │
└──────────────────────────────────────────────────────┘

tryIdnaEncode

Добавленный в: v24.1.0

Возвращает доменное имя в представлении Unicode (UTF-8) по алгоритму ToUnicode в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). В случае ошибки возвращает пустую строку вместо того, чтобы генерировать исключение.

Синтаксис

tryIdnaEncode(s)

Аргументы

  • s — Входная строка. String

Возвращаемое значение

Возвращает ASCII-представление входной строки в соответствии с механизмом IDNA для указанного входного значения либо пустую строку, если входное значение недопустимо. String

Примеры

Пример использования

SELECT tryIdnaEncode('straße.münchen.de')
┌─tryIdnaEncode('straße.münchen.de')─┐
│ xn--strae-oqa.xn--mnchen-3ya.de    │
└────────────────────────────────────┘

tryPunycodeDecode

Добавленный в: v24.1.0

Как punycodeDecode, но возвращает пустую строку, если передана невалидная строка, закодированная в Punycode.

Синтаксис

tryPunycodeDecode(s)

Аргументы

  • s — строка, закодированная в Punycode. String

Возвращаемое значение

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

Примеры

Пример использования

SELECT tryPunycodeDecode('Mnchen-3ya')
┌─tryPunycodeDecode('Mnchen-3ya')─┐
│ München                         │
└─────────────────────────────────┘

upper

Добавленный в: v1.1.0

Преобразует ASCII-символы латиницы в строке в верхний регистр.

Синтаксис

upper(s)

Псевдонимы: ucase

Аргументы

  • s — Строка, которую нужно преобразовать в верхний регистр. String

Возвращаемое значение

Возвращает строку s в верхнем регистре. String

Примеры

Пример использования

SELECT upper('clickhouse')
┌─upper('clickhouse')─┐
│ CLICKHOUSE          │
└─────────────────────┘

upperUTF8

Добавленный в: v1.1.0

Преобразует строку в верхний регистр, предполагая, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не сгенерируется, а результат не определён.

Синтаксис

upperUTF8(s)

Аргументы

  • s — строкового типа. String

Возвращаемое значение

Значение типа String. String

Примеры

Пример использования

SELECT upperUTF8('München') AS Upperutf8
┌─Upperutf8─┐
│ MÜNCHEN   │
└───────────┘
Navigation