Перейти к основному содержанию
Общие функции для работы со строками и функции поиска в строках описаны отдельно.
Приведённая ниже документация сгенерирована из системной таблицы system.functions.

format

Добавленный в: v20.1.0 Форматирует строку pattern значениями (строками, целыми числами и т. д.), перечисленными в аргументах, аналогично форматированию в Python. Строка шаблона может содержать поля подстановки, заключённые в фигурные скобки {}. Всё, что не заключено в скобки, считается буквальным текстом и копируется в выходную строку без изменений. Буквальные символы фигурных скобок можно экранировать двойными скобками: {{ и }}. Именами полей могут быть числа (начиная с нуля) или пустые значения (в этом случае им неявно присваиваются последовательно возрастающие номера). Синтаксис
format(pattern, s0[, s1, ...])
Аргументы
  • pattern — Строка форматирования, содержащая плейсхолдеры. String
  • s0[, s1, ...] — Одно или несколько значений для подстановки в шаблон. Any
Возвращаемое значение Возвращает отформатированную строку. String Примеры Нумерованные плейсхолдеры
Query
SELECT format('{1} {0} {1}', 'World', 'Hello')
Response
┌─format('{1} {0} {1}', 'World', 'Hello')─┐
│ Hello World Hello                       │
└─────────────────────────────────────────┘
Неявная нумерация
Query
SELECT format('{} {}', 'Hello', 'World')
Response
┌─format('{} {}', 'Hello', 'World')─┐
│ Hello World                       │
└───────────────────────────────────┘

overlay

Добавленный в: v24.9.0 Заменяет часть строки input на другую строку replace, начиная с индекса offset (нумерация с 1). Синтаксис
overlay(s, replace, offset[, length])
Аргументы
  • s — Входная строка. String
  • replace — Строка замены. const String
  • offset — Целочисленный тип Int (нумерация с 1). Если offset отрицательный, отсчёт ведётся от конца строки s. Int
  • length — Необязательно. Целочисленный тип Int. length задаёт длину фрагмента во входной строке s, который нужно заменить. Если length не указана, количество байтов, удаляемых из s, равно длине replace; в противном случае удаляется length байтов. Int
Возвращаемое значение Возвращает строку с выполненной заменой. String Примеры Простая замена
Query
SELECT overlay('My father is from Mexico.', 'mother', 4) AS res;
Response
┌─res──────────────────────┐
│ My mother is from Mexico.│
└──────────────────────────┘
Замена с указанием длины
Query
SELECT overlay('My father is from Mexico.', 'dad', 4, 6) AS res;
Response
┌─res───────────────────┐
│ My dad is from Mexico.│
└───────────────────────┘

overlayUTF8

Добавленный в: v24.9.0 Заменяет часть строки s на другую строку replace, начиная с индекса offset, отсчитываемого от 1. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён. Синтаксис
overlayUTF8(s, replace, offset[, length])
Аргументы
  • s — Входная строка. String
  • replace — Строка замены. const String
  • offset — Целочисленный тип Int (нумерация начинается с 1). Если offset отрицательный, отсчёт ведётся от конца входной строки s. (U)Int*
  • length — Необязательный параметр. Задаёт длину фрагмента входной строки s, который нужно заменить. Если length не указан, количество символов, удаляемых из s, равно длине replace; в противном случае удаляется length символов. (U)Int*
Возвращаемое значение Возвращает строку с заменённым фрагментом. String Примеры Замена UTF-8
Query
SELECT overlayUTF8('Mein Vater ist aus Österreich.', 'der Türkei', 20) AS res;
Response
┌─res───────────────────────────┐
│ Mein Vater ist aus der Türkei.│
└───────────────────────────────┘

printf

Добавленный в: v24.8.0 Функция printf форматирует заданную строку значениями (строками, целыми числами, числами с плавающей точкой и т. д.), перечисленными в аргументах, аналогично функции printf в C++. Строка формата может содержать спецификаторы формата, начинающиеся с символа %. Всё, что не является % и следующим за ним спецификатором формата, считается литеральным текстом и копируется в результат как есть. Литеральный символ % можно экранировать с помощью %%. Строка формата может быть как константой, так и выражением столбца, что позволяет использовать разные шаблоны формата для каждой строки. Синтаксис
printf(format[, sub1, sub2, ...])
Аргументы
  • format — Строка формата со спецификаторами %. String
  • sub1, sub2, ... — Необязательный параметр. Одно или несколько значений для подстановки в строку формата. Any
Возвращаемое значение Возвращает отформатированную строку. String Примеры Форматирование в стиле C++
Query
SELECT printf('%%%s %s %d', 'Hello', 'World', 2024);
Response
┌─printf('%%%s %s %d', 'Hello', 'World', 2024)─┐
│ %Hello World 2024                            │
└──────────────────────────────────────────────┘

regexpQuoteMeta

Добавленный в: v20.1.0 Добавляет обратную косую черту перед следующими символами, имеющими специальное значение в регулярных выражениях: \0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -. Эта реализация немного отличается от re2::RE2::QuoteMeta. Нулевой байт экранируется как \0 вместо \x00, при этом экранируются только необходимые символы. Синтаксис
regexpQuoteMeta(s)
Аргументы
  • s — Входная строка, содержащая символы, которые нужно экранировать в регулярном выражении. String
Возвращаемое значение Возвращает строку, в которой экранированы специальные символы регулярного выражения. String Примеры Экранирование специальных символов регулярного выражения
Query
SELECT regexpQuoteMeta('Hello. [World]? (Yes)*') AS res
Response
┌─res───────────────────────────┐
│ Hello\. \[World\]\? \(Yes\)\* │
└───────────────────────────────┘

replaceAll

Добавленный в: v1.1.0 Заменяет все вхождения шаблона регулярного выражения pattern в строке haystack на строку replacement. Синтаксис
replaceAll(haystack, pattern, replacement)
Псевдонимы: replace Аргументы
  • haystack — Входная строка, в которой выполняется поиск. String
  • pattern — Шаблон регулярного выражения, который нужно найти и заменить. const String
  • replacement — Строка, которой заменяется найденная подстрока. const String
Возвращаемое значение Возвращает строку, в которой заменены все вхождения шаблона регулярного выражения. String Примеры Заменить все вхождения
Query
SELECT replaceAll('Hello, Hello world', 'Hello', 'Hi') AS res;
Response
┌─res──────────┐
│ Hi, Hi world │
└──────────────┘

replaceOne

Добавленный в: v1.1.0 Заменяет первое вхождение подстроки pattern в строке haystack на строку replacement. Синтаксис
replaceOne(haystack, pattern, replacement)
Аргументы
  • haystack — Входная строка, в которой выполняется поиск. String
  • pattern — Шаблон регулярного выражения, который нужно найти и заменить. const String
  • replacement — Строка, на которую заменяется найденный фрагмент. const String
Возвращаемое значение Возвращает строку, в которой заменено первое совпадение с шаблоном регулярного выражения. String Примеры Замена первого вхождения
Query
SELECT replaceOne('Hello, Hello world', 'Hello', 'Hi') AS res;
Response
┌─res─────────────┐
│ Hi, Hello world │
└─────────────────┘

replaceRegexpAll

Добавленный в: v1.1.0 Как и replaceRegexpOne, но заменяет все вхождения шаблона регулярного выражения. В качестве исключения: если регулярное выражение сработало на пустой подстроке, замена выполняется не более одного раза. Синтаксис
replaceRegexpAll(haystack, pattern, replacement)
Псевдонимы: REGEXP_REPLACE Аргументы
  • haystack — Входная строка, в которой выполняется поиск. String
  • pattern — Шаблон регулярного выражения, который нужно найти. const String
  • replacement — Строка, которой заменяется шаблон регулярного выражения; может содержать подстановки. const String
Возвращаемое значение Возвращает строку, в которой заменены все совпадения с регулярным выражением. String Примеры Заменить все символы на удвоенные
Query
SELECT replaceRegexpAll('Hello123', '.', '\\\\0\\\\0') AS res
Response
┌─res──────────────────┐
│ HHeelllloo112233     │
└──────────────────────┘
Пример замены пустой подстроки
Query
SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
Response
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘

replaceRegexpOne

Добавленный в: v1.1.0 Заменяет первое вхождение подстроки в haystack, соответствующее шаблону регулярного выражения pattern (в синтаксисе re2), на строку replacement. replacement может содержать подстановки \0-\9. Подстановки \1-\9 соответствуют 1-й–9-й захватывающим группам (подсовпадениям), а подстановка \0 — всему совпадению. Чтобы использовать буквальный символ \ в строках pattern или replacement, экранируйте его с помощью \. Также имейте в виду, что строковые литералы требуют дополнительного экранирования. Синтаксис
replaceRegexpOne(haystack, pattern, replacement)
Аргументы
  • haystack — Входная строка для поиска. String
  • pattern — Шаблон регулярного выражения для поиска. const String
  • replacement — Строка, на которую заменяется найденное совпадение; может содержать подстановки. const String
Возвращаемое значение Возвращает строку, в которой заменено первое совпадение по регулярному выражению. String Примеры Преобразование дат ISO в американский формат
Query
SELECT DISTINCT
    EventDate,
    replaceRegexpOne(toString(EventDate), '(\\d{4})-(\\d{2})-(\\d{2})', '\\2/\\3/\\1') AS res
FROM test.hits
LIMIT 7
FORMAT TabSeparated
Response
2014-03-17      03/17/2014
2014-03-18      03/18/2014
2014-03-19      03/19/2014
2014-03-20      03/20/2014
2014-03-21      03/21/2014
2014-03-22      03/22/2014
2014-03-23      03/23/2014
Копирование строки десять раз
Query
SELECT replaceRegexpOne('Hello, World!', '.*', '\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0') AS res
Response
┌─res────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World! │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

translate

Добавленный в: v22.7.0 Заменяет символы в строке s на основе посимвольного соответствия, заданного строками from и to. from и to должны быть константными ASCII-строками. Если from и to имеют одинаковую длину, каждое вхождение первого символа из from в s заменяется первым символом из to, каждого второго символа из from — вторым символом из to и так далее. Если from содержит больше символов, чем to, все вхождения символов в конце from, для которых нет соответствующего символа в to, удаляются из s. Символы не из ASCII в s функцией не изменяются. Синтаксис
translate(s, from, to)
Аргументы
  • s — Входная строка для преобразования. String
  • from — Константная строка ASCII, содержащая символы для замены. const String
  • to — Константная строка ASCII, содержащая символы-замены. const String
Возвращаемое значение Возвращает строку с заменёнными символами. String Примеры Сопоставление символов
Query
SELECT translate('Hello, World!', 'delor', 'DELOR') AS res
Response
┌─res───────────┐
│ HELLO, WORLD! │
└───────────────┘
Различная длина
Query
SELECT translate('clickhouse', 'clickhouse', 'CLICK') AS res
Response
┌─res───┐
│ CLICK │
└───────┘

translateUTF8

Добавленный в: v22.7.0 Как translate, но предполагается, что s, from и to — строки в кодировке UTF-8. Синтаксис
translateUTF8(s, from, to)
Аргументы
  • s — входная UTF-8-строка для преобразования. String
  • from — константная UTF-8-строка, содержащая символы для замены. const String
  • to — константная UTF-8-строка, содержащая символы, на которые выполняется замена. const String
Возвращаемое значение Возвращает значение типа данных String. String Примеры Преобразование символов UTF-8
Query
SELECT translateUTF8('Münchener Straße', 'üß', 'us') AS res;
Response
┌─res──────────────┐
│ Munchener Strase │
└──────────────────┘
Последнее изменение 10 июня 2026 г.