Saltar al contenido principal
Las funciones generales de cadenas y las funciones de búsqueda en cadenas se describen por separado.
La documentación que figura a continuación se genera a partir de la tabla del sistema system.functions.

format

Introducido en: v20.1.0 Da formato a la cadena pattern con los valores (cadenas, enteros, etc.) indicados en los argumentos, de forma similar al formato de Python. La cadena pattern puede contener campos de reemplazo entre llaves {}. Todo lo que no esté entre llaves se considera texto literal y se copia textualmente en la salida. Los caracteres de llave literales pueden escaparse con llaves dobles: {{ y }}. Los nombres de los campos pueden ser números (a partir de cero) o estar vacíos (en ese caso, se les asignan implícitamente números correlativos en orden ascendente). Sintaxis
format(pattern, s0[, s1, ...])
Argumentos
  • pattern — La cadena de formato que contiene marcadores de posición. String
  • s0[, s1, ...] — Uno o más valores que se sustituyen en el patrón. Any
Valor devuelto Devuelve una cadena formateada. String Ejemplos Marcadores de posición numerados
Query
SELECT format('{1} {0} {1}', 'World', 'Hello')
Response
┌─format('{1} {0} {1}', 'World', 'Hello')─┐
│ Hello World Hello                       │
└─────────────────────────────────────────┘
Numeración implícita
Query
SELECT format('{} {}', 'Hello', 'World')
Response
┌─format('{} {}', 'Hello', 'World')─┐
│ Hello World                       │
└───────────────────────────────────┘

overlay

Introducido en: v24.9.0 Reemplaza una parte de la cadena input por otra cadena, replace, a partir del índice basado en 1 offset. Sintaxis
overlay(s, replace, offset[, length])
Argumentos
  • s — La cadena de entrada. String
  • replace — La cadena de reemplazo const String
  • offset — Un entero de tipo Int (indexado desde 1). Si offset es negativo, se cuenta desde el final de la cadena s. Int
  • length — Opcional. Un entero de tipo Int. length especifica la longitud del fragmento dentro de la cadena de entrada s que se va a reemplazar. Si no se especifica length, el número de bytes eliminados de s es igual a la longitud de replace; de lo contrario, se eliminan length bytes. Int
Valor devuelto Devuelve una cadena con el reemplazo aplicado. String Ejemplos Reemplazo básico
Query
SELECT overlay('My father is from Mexico.', 'mother', 4) AS res;
Response
┌─res──────────────────────┐
│ My mother is from Mexico.│
└──────────────────────────┘
Reemplazo con longitud
Query
SELECT overlay('My father is from Mexico.', 'dad', 4, 6) AS res;
Response
┌─res───────────────────┐
│ My dad is from Mexico.│
└───────────────────────┘

overlayUTF8

Introducido en: v24.9.0 Reemplaza parte de la cadena s por otra cadena, replace, a partir del índice offset, basado en 1. Asume que la cadena contiene texto válido codificado en UTF-8. Si no se cumple esta suposición, no se lanza ninguna excepción y el resultado es indefinido. Sintaxis
overlayUTF8(s, replace, offset[, length])
Argumentos
  • s — La cadena de entrada. String
  • replace — La cadena de reemplazo. const String
  • offset — Un entero Int (indexado desde 1). Si offset es negativo, se cuenta desde el final de la cadena de entrada s. (U)Int*
  • length — Opcional. Especifica la longitud del fragmento de la cadena de entrada s que se va a reemplazar. Si no se especifica length, el número de caracteres eliminados de s es igual a la longitud de replace; de lo contrario, se eliminan length caracteres. (U)Int*
Valor devuelto Devuelve una cadena con el reemplazo aplicado. String Ejemplos Reemplazo 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

Introducido en: v24.8.0 La función printf da formato a la cadena proporcionada con los valores (cadenas, enteros, números de coma flotante, etc.) indicados en los argumentos, de forma similar a la función printf de C++. La cadena de formato puede contener especificadores de formato que comienzan con el carácter %. Todo lo que no forme parte de % y del especificador de formato que le sigue se considera texto literal y se copia literalmente en la salida. El carácter literal % puede escaparse con %%. La cadena de formato puede ser una constante o una expresión de columna, lo que permite usar distintos patrones de formato por fila. Sintaxis
printf(format[, sub1, sub2, ...])
Argumentos
  • format — La cadena de formato con especificadores %. String
  • sub1, sub2, ... — Opcional. Cero o más valores que se sustituyen en la cadena de formato. Any
Valor devuelto Devuelve una cadena formateada. String Ejemplos Formato de estilo C++
Query
SELECT printf('%%%s %s %d', 'Hello', 'World', 2024);
Response
┌─printf('%%%s %s %d', 'Hello', 'World', 2024)─┐
│ %Hello World 2024                            │
└──────────────────────────────────────────────┘

regexpQuoteMeta

Introducido en: v20.1.0 Añade una barra invertida antes de estos caracteres con significado especial en las expresiones regulares: \0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -. Esta implementación difiere ligeramente de re2::RE2::QuoteMeta. Escapa el byte cero como \0 en lugar de \x00 y solo escapa los caracteres necesarios. Sintaxis
regexpQuoteMeta(s)
Argumentos
  • s — La cadena de entrada que contiene caracteres que deben escaparse en regex. String
Valor devuelto Devuelve una cadena con los caracteres especiales de regex escapados. String Ejemplos Escapar caracteres especiales de regex
Query
SELECT regexpQuoteMeta('Hello. [World]? (Yes)*') AS res
Response
┌─res───────────────────────────┐
│ Hello\. \[World\]\? \(Yes\)\* │
└───────────────────────────────┘

replaceAll

Introducido en: v1.1.0 Reemplaza todas las ocurrencias de la subcadena pattern en haystack por la cadena replacement. Sintaxis
replaceAll(haystack, pattern, replacement)
Alias: replace Argumentos
  • haystack — La cadena de entrada en la que se busca. String
  • pattern — La subcadena que se debe encontrar y reemplazar. const String
  • replacement — La cadena por la que se reemplaza el patrón. const String
Valor devuelto Devuelve una cadena con todas las apariciones del patrón reemplazadas. String Ejemplos Reemplazar todas las apariciones
Query
SELECT replaceAll('Hello, Hello world', 'Hello', 'Hi') AS res;
Response
┌─res──────────┐
│ Hi, Hi world │
└──────────────┘

replaceOne

Introducido en: v1.1.0 Reemplaza la primera aparición de la subcadena pattern en haystack con la cadena replacement. Sintaxis
replaceOne(haystack, pattern, replacement)
Argumentos
  • haystack — La cadena de entrada en la que se realiza la búsqueda. String
  • pattern — La subcadena que se debe buscar y reemplazar. const String
  • replacement — La cadena por la que se reemplazará el patrón. const String
Valor devuelto Devuelve una cadena en la que se ha reemplazado la primera aparición del patrón. String Ejemplos Reemplazar la primera aparición
Query
SELECT replaceOne('Hello, Hello world', 'Hello', 'Hi') AS res;
Response
┌─res─────────────┐
│ Hi, Hello world │
└─────────────────┘

replaceRegexpAll

Introducido en: v1.1.0 Como replaceRegexpOne, pero reemplaza todas las apariciones del patrón. Como excepción, si una expresión regular coincide con una subcadena vacía, el reemplazo no se realiza más de una vez. Sintaxis
replaceRegexpAll(haystack, pattern, replacement)
Alias: REGEXP_REPLACE Argumentos
  • haystack — La cadena de entrada en la que se busca. String
  • pattern — El patrón de expresión regular que se debe encontrar. const String
  • replacement — La cadena por la que se reemplaza el patrón; puede contener sustituciones. const String
Valor devuelto Devuelve una cadena en la que se reemplazan todas las coincidencias de la expresión regular. String Ejemplos Reemplazar todos los caracteres por una versión duplicada
Query
SELECT replaceRegexpAll('Hello123', '.', '\\\\0\\\\0') AS res
Response
┌─res──────────────────┐
│ HHeelllloo112233     │
└──────────────────────┘
Ejemplo de reemplazo de una subcadena vacía
Query
SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
Response
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘

replaceRegexpOne

Introducido en: v1.1.0 Reemplaza la primera aparición de la subcadena que coincide con la expresión regular pattern (en sintaxis re2) en haystack por la cadena replacement. replacement puede contener sustituciones \0-\9. Las sustituciones \1-\9 corresponden al 1.º-9.º grupo de captura (subcoincidencia), y la sustitución \0 corresponde a la coincidencia completa. Para usar un carácter \ literal en las cadenas pattern o replacement, escápalo con \. Ten en cuenta también que los literales de cadena requieren un escape adicional. Sintaxis
replaceRegexpOne(haystack, pattern, replacement)
Argumentos
  • haystack — La cadena de entrada en la que se realiza la búsqueda. String
  • pattern — El patrón de expresión regular que se debe encontrar. const String
  • replacement — La cadena por la que se reemplazará el patrón; puede contener sustituciones. const String
Valor devuelto Devuelve una cadena en la que se reemplaza la primera coincidencia de la expresión regular. String Ejemplos Conversión de fechas ISO al formato estadounidense
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
Copiar una cadena diez veces
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

Introducido en: v22.7.0 Reemplaza caracteres de la cadena s mediante un mapeo de caracteres uno a uno definido por las cadenas from y to. from y to deben ser cadenas ASCII constantes. Si from y to tienen el mismo tamaño, cada aparición del primer carácter de first en s se reemplaza por el primer carácter de to, el segundo carácter de first en s se reemplaza por el segundo carácter de to, etc. Si from contiene más caracteres que to, todas las apariciones de los caracteres al final de from que no tienen un carácter correspondiente en to se eliminan de s. La función no modifica los caracteres no ASCII de s. Sintaxis
translate(s, from, to)
Argumentos
  • s — La cadena de entrada que se va a transformar. String
  • from — Una cadena ASCII constante que contiene los caracteres que se deben reemplazar. const String
  • to — Una cadena ASCII constante que contiene los caracteres de reemplazo. const String
Valor devuelto Devuelve una cadena con las sustituciones de caracteres aplicadas. String Ejemplos Mapeo de caracteres
Query
SELECT translate('Hello, World!', 'delor', 'DELOR') AS res
Response
┌─res───────────┐
│ HELLO, WORLD! │
└───────────────┘
Distintas longitudes
Query
SELECT translate('clickhouse', 'clickhouse', 'CLICK') AS res
Response
┌─res───┐
│ CLICK │
└───────┘

translateUTF8

Introducido en: v22.7.0 Como translate, pero supone que s, from y to son cadenas codificadas en UTF-8. Sintaxis
translateUTF8(s, from, to)
Argumentos
  • s — cadena de entrada UTF-8 que se va a traducir. String
  • from — cadena UTF-8 constante que contiene los caracteres que se van a reemplazar. const String
  • to — cadena UTF-8 constante que contiene los caracteres de reemplazo. const String
Valor devuelto Devuelve un valor de tipo de dato String. String Ejemplos Traducción de caracteres UTF-8
Query
SELECT translateUTF8('Münchener Straße', 'üß', 'us') AS res;
Response
┌─res──────────────┐
│ Munchener Strase │
└──────────────────┘
Última modificación el 10 de junio de 2026