As funções para buscar em strings e para substituir em strings são descritas separadamente.
A documentação abaixo é gerada a partir da tabela de sistema system.functions.
Introduzido em: v20.1.0
Calcula o checksum CRC32 de uma string usando o polinômio CRC-32-IEEE 802.3 e o valor inicial 0xffffffff (implementação do zlib).
Sintaxe
Argumentos
s — String para a qual calcular o CRC32. String
Valor retornado
Retorna o checksum CRC32 da string. UInt32
Exemplos
Exemplo de uso
SELECT CRC32('ClickHouse')
┌─CRC32('ClickHouse')─┐
│ 1538217360 │
└─────────────────────┘
Introduzido em: v20.1.0
Calcula o checksum CRC32 de uma string usando o polinômio CRC-32-IEEE 802.3.
Sintaxe
Argumentos
s — String para a qual calcular o CRC32. String
Valor retornado
Retorna o checksum CRC32 da string. UInt32
Exemplos
Exemplo de uso
SELECT CRC32IEEE('ClickHouse');
┌─CRC32IEEE('ClickHouse')─┐
│ 3089448422 │
└─────────────────────────┘
Introduzido em: v20.1.0
Calcula o checksum CRC64 de uma string usando o polinômio CRC-64-ECMA.
Sintaxe
Argumentos
s — String para a qual calcular o CRC64. String
Valor retornado
Retorna o checksum CRC64 da string. UInt64
Exemplos
Exemplo de uso
SELECT CRC64('ClickHouse');
┌──CRC64('ClickHouse')─┐
│ 12126588151325169346 │
└──────────────────────┘
appendTrailingCharIfAbsent
Introduzido em: v1.1.0
Adiciona o caractere c à string s se s não estiver vazia e não terminar com o caractere c.
Sintaxe
appendTrailingCharIfAbsent(s, c)
Argumentos
s — String de entrada. String
c — Caractere a ser acrescentado, caso esteja ausente. String
Valor retornado
Retorna a string s com o caractere c acrescentado, caso s não termine com c. String
Exemplos
Exemplo de uso
SELECT appendTrailingCharIfAbsent('https://example.com', '/');
┌─appendTraili⋯.com', '/')─┐
│ https://example.com/ │
└──────────────────────────┘
Introduzido em: v22.11.0
Retorna o código ASCII do primeiro caractere da string s como um Int32.
Sintaxe
Argumentos
s — Entrada do tipo String. String
Valor retornado
Retorna o ponto de código ASCII do primeiro caractere. Se s estiver vazio, o resultado será 0. Se o primeiro caractere não for um caractere ASCII ou não fizer parte do intervalo suplementar Latin-1 do UTF-16, o resultado será indefinido. Int32
Exemplos
Exemplo de uso
┌─ascii('234')─┐
│ 50 │
└──────────────┘
Introduzido em: v25.6.0
Decodifica uma string em Base32 (RFC 4648).
Se a string não estiver codificada em Base32 de forma válida, uma exceção será gerada.
Sintaxe
Argumentos
encoded — coluna ou constante do tipo String. String
Valor retornado
Retorna uma string contendo o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT base32Decode('IVXGG33EMVSA====');
┌─base32Decode('IVXGG33EMVSA====')─┐
│ Encoded │
└──────────────────────────────────┘
Introduzido em: v25.6.0
Codifica uma cadeia de caracteres usando Base32.
Sintaxe
Argumentos
plaintext — texto simples a ser codificado. String
Valor retornado
Retorna uma string contendo o valor codificado do argumento. String ou FixedString
Exemplos
Exemplo de uso
SELECT base32Encode('Encoded')
┌─base32Encode('Encoded')─┐
│ IVXGG33EMVSA==== │
└─────────────────────────┘
Introduzido em: v22.7.0
Decodifica uma string em Base58.
Se a string não for uma codificação Base58 válida, uma exceção será lançada.
Um segundo argumento opcional, expected_size, pode ser fornecido para selecionar um decodificador otimizado de tamanho fixo.
No momento, os valores compatíveis são 32 e 64. Para outros valores, o decodificador genérico é usado.
Quando o decodificador otimizado é selecionado, mas a entrada não pode ser decodificada em exatamente essa quantidade de bytes,
a função lança uma exceção (ou retorna uma string vazia para tryBase58Decode).
Sintaxe
base58Decode(encoded[, expected_size])
Argumentos
encoded — coluna String ou constante a ser decodificada. String
expected_size — Opcional. Tamanho esperado após a decodificação, em bytes. Quando o valor for 32 ou 64, será usado um decodificador otimizado; para outros valores, será usado o decodificador genérico. UInt8, UInt16, UInt32 ou UInt64
Valor retornado
Retorna uma string que contém o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT base58Decode('JxF12TrwUP45BMd');
┌─base58Decode⋯rwUP45BMd')─┐
│ Hello World │
└──────────────────────────┘
Introduzido em: v22.7.0
Codifica uma string usando a codificação Base58.
Sintaxe
Argumentos
plaintext — texto simples a ser codificado. String
Valor retornado
Retorna uma string contendo o valor codificado do argumento. String
Exemplos
Exemplo de uso
SELECT base58Encode('ClickHouse');
┌─base58Encode('ClickHouse')─┐
│ 4nhk8K7GHXf6zx │
└────────────────────────────┘
Introduzido em: v18.16.0
Decodifica uma string em representação Base64, de acordo com a RFC 4648.
Lança uma exceção em caso de erro.
Sintaxe
Aliases: FROM_BASE64
Argumentos
encoded — coluna do tipo String ou constante a ser decodificada. Se a string não for uma codificação Base64 válida, uma exceção será lançada. String
Valor retornado
Retorna a string decodificada. String
Exemplos
Exemplo de uso
SELECT base64Decode('Y2xpY2tob3VzZQ==')
┌─base64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse │
└──────────────────────────────────┘
Introduzido em: v18.16.0
Codifica uma string na representação Base64, de acordo com a RFC 4648.
Sintaxe
Aliases: TO_BASE64
Argumentos
plaintext — Coluna ou constante de texto simples a ser decodificada. String
Valor retornado
Retorna uma string com o valor codificado do argumento. String
Exemplos
Exemplo de uso
SELECT base64Encode('clickhouse')
┌─base64Encode('clickhouse')─┐
│ Y2xpY2tob3VzZQ== │
└────────────────────────────┘
Introduzido em: v24.6.0
Decodifica uma string a partir da representação Base64, usando um alfabeto seguro para URL, de acordo com a RFC 4648.
Lança uma exceção em caso de erro.
Sintaxe
Argumentos
encoded — coluna ou constante do tipo String a ser codificada. Se a string não estiver codificada em Base64 de forma válida, uma exceção será lançada. String
Valor retornado
Retorna uma string que contém o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
┌─base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com │
└───────────────────────────────────────────────────┘
Introduzido na versão: v18.16.0
Codifica uma string usando a representação Base64 (RFC 4648) com um alfabeto seguro para URL.
Sintaxe
base64URLEncode(plaintext)
Argumentos
plaintext — Coluna ou constante de texto simples a ser codificada. String
Valor retornado
Retorna uma string contendo o valor codificado do argumento. String
Exemplos
Exemplo de uso
SELECT base64URLEncode('https://clickhouse.com')
┌─base64URLEncode('https://clickhouse.com')─┐
│ aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ │
└───────────────────────────────────────────┘
Introduzido em: v20.1.0
Extrai a parte final de uma string após a última barra ou barra invertida.
Essa função é frequentemente usada para extrair o nome do arquivo de um caminho.
Sintaxe
Argumentos
expr — Uma expressão de string. As barras invertidas devem ser escapadas. String
Valor retornado
Retorna a parte final da string de entrada após a última barra ou barra invertida. Se a string de entrada terminar com uma barra ou barra invertida, a função retornará uma string vazia. Retorna a string original se não houver barras nem barras invertidas. String
Exemplos
Extrair o nome do arquivo de um caminho Unix
SELECT 'some/long/path/to/file' AS a, basename(a)
┌─a──────────────────────┬─basename('some/long/path/to/file')─┐
│ some/long/path/to/file │ file │
└────────────────────────┴────────────────────────────────────┘
Extrair o nome do arquivo de um caminho do Windows
SELECT 'some\\long\\path\\to\\file' AS a, basename(a)
┌─a──────────────────────┬─basename('some\\long\\path\\to\\file')─┐
│ some\long\path\to\file │ file │
└────────────────────────┴────────────────────────────────────────┘
String sem separadores de caminho
SELECT 'some-file-name' AS a, basename(a)
┌─a──────────────┬─basename('some-file-name')─┐
│ some-file-name │ some-file-name │
└────────────────┴────────────────────────────┘
Introduzido em: v23.9.0
Calcula a distância de Hamming entre duas sequências de bytes.
Sintaxe
byteHammingDistance(s1, s2)
Aliases: mismatches
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna a distância de Hamming entre as duas strings. UInt64
Exemplos
Exemplo de uso
SELECT byteHammingDistance('karolin', 'kathrin')
┌─byteHammingDistance('karolin', 'kathrin')─┐
│ 3 │
└───────────────────────────────────────────┘
Introduzido em: v26.3.0
Aplica o case folding do Unicode a uma string UTF-8, convertendo-a em uma forma normalizada semelhante a minúsculas, adequada para comparações sem diferenciar maiúsculas de minúsculas.
Aplica o case folding padrão do Unicode. Preserva caracteres de compatibilidade que não são afetados pelo case folding
(por exemplo, algarismos romanos, números circundados), mas observe que algumas ligaturas, como ffi, ainda são decompostas porque o próprio case folding do Unicode as expande.
Sintaxe
Argumentos
str — string de entrada codificada em UTF-8. String
Valor retornado
String UTF-8 com case folding aplicado. String
Exemplos
Case folding básico
SELECT caseFoldUTF8('Straße')
┌─caseFoldUTF8('Straße')─┐
│ strasse │
└─────────────────────────┘
Introduzido em: v25.2.0
Compara duas strings em ordem lexicográfica.
Sintaxe
compareSubstrings(s1, s2, s1_offset, s2_offset, num_bytes)
Argumentos
s1 — A primeira string a ser comparada. String
s2 — A segunda string a ser comparada. String
s1_offset — A posição em s1 (baseada em zero) a partir da qual a comparação começa. UInt*
s2_offset — A posição em s2 (índice baseado em zero) a partir da qual a comparação começa. UInt*
num_bytes — O número máximo de bytes a serem comparados em ambas as strings. Se s1_offset (ou s2_offset) + num_bytes ultrapassar o fim de uma string de entrada, num_bytes será reduzido adequadamente. UInt*
Valor retornado
Retorna:
-1 se s1[s1_offset : s1_offset + num_bytes] < s2[s2_offset : s2_offset + num_bytes].
0 se s1[s1_offset : s1_offset + num_bytes] = s2[s2_offset : s2_offset + num_bytes].
1 se s1[s1_offset : s1_offset + num_bytes] > s2[s2_offset : s2_offset + num_bytes].
Int8
Exemplos
Exemplo de uso
SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result
┌─result─┐
│ 0 │
└────────┘
Introduzido em: v1.1.0
Concatena os argumentos especificados.
Argumentos que não são dos tipos String ou FixedString são convertidos em strings usando a serialização padrão.
Como isso reduz o desempenho, não é recomendável usar argumentos diferentes de String/FixedString.
Sintaxe
Argumentos
s1, s2, ... — Qualquer número de valores de tipo arbitrário. Any
Valor retornado
Retorna a String resultante da concatenação dos argumentos. Se algum dos argumentos for NULL, a função retorna NULL. Se não houver argumentos, retorna uma string vazia. Nullable(String)
Exemplos
Concatenação de strings
SELECT concat('Hello, ', 'World!')
┌─concat('Hello, ', 'World!')─┐
│ Hello, World! │
└─────────────────────────────┘
Concatenação de números
┌─concat(42, 144)─┐
│ 42144 │
└─────────────────┘
Introduzido em: v1.1.0
Semelhante a concat, mas assume que concat(s1, s2, ...) → sn é injetiva,
ou seja, retorna resultados diferentes para argumentos distintos.
Pode ser usado para otimizar GROUP BY.
Sintaxe
concatAssumeInjective([s1, s2, ...])
Argumentos
s1, s2, ... — Qualquer quantidade de valores de tipo arbitrário. String ou FixedString
Valor retornado
Retorna a string criada pela concatenação dos argumentos. Se qualquer um dos valores dos argumentos for NULL, a função retorna NULL. Se nenhum argumento for passado, retorna uma string vazia. String
Exemplos
Otimização de agrupamento
SELECT concat(key1, key2), sum(value) FROM key_val GROUP BY concatAssumeInjective(key1, key2)
┌─concat(key1, key2)─┬─sum(value)─┐
│ Hello, World! │ 3 │
│ Hello, World! │ 2 │
│ Hello, World │ 3 │
└────────────────────┴────────────┘
Introduzido em: v22.12.0
Concatena as strings fornecidas, separando-as com o separador especificado.
Sintaxe
concatWithSeparator(sep[, exp1, exp2, ...])
Aliases: concat_ws
Argumentos
sep — O separador a ser usado. const String ou const FixedString
exp1, exp2, ... — Expressão a ser concatenada. Argumentos que não são do tipo String ou FixedString são convertidos em strings usando a serialização padrão. Como isso reduz o desempenho, não é recomendado usar argumentos diferentes de String/FixedString. Any
Valor retornado
Retorna a String criada pela concatenação dos argumentos. Se qualquer um dos valores dos argumentos for NULL, a função retorna NULL. String
Exemplos
Exemplo de uso
SELECT concatWithSeparator('a', '1', '2', '3', '4')
┌─concatWithSeparator('a', '1', '2', '3', '4')─┐
│ 1a2a3a4 │
└──────────────────────────────────────────────┘
concatWithSeparatorAssumeInjective
Introduzido em: v22.12.0
Como concatWithSeparator, mas assume que concatWithSeparator(sep[,exp1, exp2, ... ]) → result seja injetiva.
Uma função é considerada injetiva se retornar resultados distintos para argumentos distintos.
Pode ser usada para otimizar GROUP BY.
Sintaxe
concatWithSeparatorAssumeInjective(sep[, exp1, exp2, ... ])
Argumentos
sep — O separador a ser usado. const String ou const FixedString
exp1, exp2, ... — Expressão a ser concatenada. Argumentos que não são do tipo String ou FixedString são convertidos em strings usando a serialização padrão. Como isso reduz o desempenho, não é recomendável usar argumentos diferentes de String/FixedString. String ou FixedString
Valor retornado
Retorna a String criada pela concatenação dos argumentos. Se qualquer um dos valores dos argumentos for NULL, a função retorna NULL. String
Exemplos
Exemplo de uso
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 │
└─────────────┴─────────────┘
Introduzido em: v25.10.0
Converte números entre diferentes bases numéricas.
A função converte um número de uma base numérica para outra. Ela oferece suporte a bases de 2 a 36.
Para bases maiores que 10, as letras A-Z (sem diferenciar maiúsculas de minúsculas) são usadas para representar os dígitos de 10 a 35.
Esta função é compatível com a função CONV() do MySQL.
Sintaxe
conv(number, from_base, to_base)
Argumentos
number — O número a ser convertido. Pode ser uma string ou um tipo numérico. - from_base — A base de origem (2-36). Deve ser um número inteiro. - to_base — A base de destino (2-36). Deve ser um número inteiro.
Valor retornado
Representação em string do número na base de destino.
Exemplos
Converter decimal em binário
Converter hexadecimal para decimal
SELECT conv('FF', 16, 10)
Conversão com número negativo
SELECT conv('-1', 10, 16)
Converter binário para octal
SELECT conv('1010', 2, 8)
Introduzido em: v1.1.0
Retorna a string s convertida da codificação from para a codificação to.
Sintaxe
convertCharset(s, from, to)
Argumentos
s — String de entrada. String
from — Codificação de caracteres de origem. String
to — Codificação de caracteres de destino. String
Valor retornado
Retorna a string s, convertida da codificação from para a codificação to. String
Exemplos
Exemplo de uso
SELECT convertCharset('Café', 'UTF-8', 'ISO-8859-1');
┌─convertChars⋯SO-8859-1')─┐
│ Caf� │
└──────────────────────────┘
damerauLevenshteinDistance
Introduzido em: v24.1.0
Calcula a distância de Damerau-Levenshtein entre duas strings de bytes.
Sintaxe
damerauLevenshteinDistance(s1, s2)
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna a distância de Damerau-Levenshtein entre as duas strings. UInt64
Exemplos
Exemplo de uso
SELECT damerauLevenshteinDistance('clickhouse', 'mouse')
┌─damerauLevenshteinDistance('clickhouse', 'mouse')─┐
│ 6 │
└───────────────────────────────────────────────────┘
Introduzido em: v23.9.0
Decodifica entidades HTML em uma string, convertendo-as nos caracteres correspondentes.
Sintaxe
Argumentos
s — String que contém entidades HTML a serem decodificadas. String
Valor retornado
Retorna a string com as entidades HTML decodificadas. String
Exemplos
Exemplo de uso
SELECT decodeHTMLComponent('<div>Hello & "World"</div>')
┌─decodeHTMLComponent('<div>Hello & "World"</div>')─┐
│ <div>Hello & "World"</div> │
└─────────────────────────────────────────────────────────────────────────────┘
Introduzido em: v21.2.0
Decodifica entidades XML em uma string, convertendo-as em seus caracteres correspondentes.
Sintaxe
Argumentos
s — String com entidades XML a serem decodificadas. String
Valor retornado
Retorna a string fornecida com as entidades XML decodificadas. String
Exemplos
Exemplo de uso
SELECT decodeXMLComponent('<tag>Hello & World</tag>')
┌─decodeXMLCom⋯;/tag>')─┐
│ <tag>Hello & World</tag> │
└──────────────────────────┘
Introduzido em: v23.9.0
Calcula a distância de edição entre duas sequências de bytes.
Sintaxe
Aliases: levenshteinDistance
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna a distância de edição entre as duas strings. UInt64
Exemplos
Exemplo de uso
SELECT editDistance('clickhouse', 'mouse')
┌─editDistance('clickhouse', 'mouse')─┐
│ 6 │
└─────────────────────────────────────┘
Introduzido em: v24.6.0
Calcula a distância de edição entre duas strings UTF-8.
Sintaxe
Aliases: levenshteinDistanceUTF8
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna a distância de edição entre as duas strings UTF-8. UInt64
Exemplos
Exemplo de uso
SELECT editDistanceUTF8('我是谁', '我是我')
┌─editDistanceUTF8('我是谁', '我是我')──┐
│ 1 │
└─────────────────────────────────────┘
Introduzido em: v21.1.0
Escapa caracteres para inserir uma string em um nó de texto ou em um atributo XML.
Sintaxe
Argumentos
s — String a ser escapada. String
Valor retornado
Retorna a string escapada. String
Exemplos
Exemplo de uso
SELECT
'<tag>Hello & "World"</tag>' AS original,
encodeXMLComponent('<tag>Hello & "World"</tag>') AS xml_encoded;
┌─original───────────────────┬─xml_encoded──────────────────────────────────────────┐
│ <tag>Hello & "World"</tag> │ <tag>Hello & "World"</tag> │
└────────────────────────────┴──────────────────────────────────────────────────────┘
Introduzido em: v1.1.0
Verifica se uma string termina com o sufixo informado.
Sintaxe
Argumentos
s — String a ser verificada. String
suffix — Sufixo a ser verificado. String
Valor retornado
Retorna 1 se s terminar com suffix; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT endsWith('ClickHouse', 'House');
┌─endsWith('Cl⋯', 'House')─┐
│ 1 │
└──────────────────────────┘
Introduzido em: v25.10.0
Verifica se uma string termina com o sufixo fornecido sem diferenciar maiúsculas de minúsculas.
Sintaxe
endsWithCaseInsensitive(s, suffix)
Argumentos
s — String a ser verificada. String
suffix — Sufixo sem distinção entre maiúsculas e minúsculas a ser verificado. String
Valor retornado
Retorna 1 se s terminar com o suffix sem distinção entre maiúsculas e minúsculas; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT endsWithCaseInsensitive('ClickHouse', 'HOUSE');
┌─endsWithCaseInsensitive('Cl⋯', 'HOUSE')─┐
│ 1 │
└─────────────────────────────────────────┘
endsWithCaseInsensitiveUTF8
Introduzido na versão: v25.10.0
Retorna se a string s termina com o suffix, sem diferenciar maiúsculas de minúsculas.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção é lançada e o resultado é indefinido.
Sintaxe
endsWithCaseInsensitiveUTF8(s, suffix)
Argumentos
s — String a ser verificada. String
suffix — Sufixo, sem distinção entre maiúsculas e minúsculas, a ser verificado. String
Valor retornado
Retorna 1 se s terminar com suffix sem distinção entre maiúsculas e minúsculas; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT endsWithCaseInsensitiveUTF8('данных', 'ых');
┌─endsWithCaseInsensitiveUTF8('данных', 'ых')─┐
│ 1 │
└─────────────────────────────────────────────┘
Introduzido em: v23.8.0
Retorna se a string s termina com suffix.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção é lançada e o resultado é indefinido.
Sintaxe
Argumentos
s — String a ser verificada. String
suffix — Sufixo a ser verificado. String
Valor retornado
Retorna 1 se s terminar com suffix; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT endsWithUTF8('данных', 'ых');
┌─endsWithUTF8('данных', 'ых')─┐
│ 1 │
└──────────────────────────────┘
Introduzido em: v21.3.0
Extrai conteúdo textual de HTML ou XHTML.
Esta função remove tags HTML, comentários e elementos script/style, deixando apenas o conteúdo textual. Ela faz o seguinte:
- Remove todas as tags HTML/XML
- Remove comentários (
{/* */})
- Remove elementos
script e style com seu conteúdo
- Processa seções CDATA (copiadas literalmente)
- Trata e normaliza adequadamente os espaços em branco
Observação: entidades HTML não são decodificadas e devem ser processadas com uma função separada, se necessário.
Sintaxe
extractTextFromHTML(html)
Argumentos
html — String que contém o conteúdo HTML do qual o texto será extraído. String
Valor retornado
Retorna o conteúdo de texto extraído com os espaços em branco normalizados. String
Exemplos
Exemplo de uso
SELECT extractTextFromHTML('
<html>
<head><title>Page Title</title></head>
<body>
<p>Hello <b>World</b>!</p>
<script>alert("test");</script>
<!-- comment -->
</body>
</html>
');
┌─extractTextFromHTML('<html><head>...')─┐
│ Page Title Hello World! │
└────────────────────────────────────────┘
Introduzido em: v23.7.0
Retorna a primeira linha de uma string multilinha.
Sintaxe
Argumentos
Valor retornado
Retorna a primeira linha da string de entrada ou a string inteira, se não houver separadores de linha. String
Exemplos
Exemplo de uso
SELECT firstLine('foo\\nbar\\nbaz')
┌─firstLine('foo\nbar\nbaz')─┐
│ foo │
└────────────────────────────┘
Introduzido em: v24.1.0
Retorna a representação Unicode (UTF-8) (algoritmo ToUnicode) de um nome de domínio de acordo com o mecanismo Internationalized Domain Names in Applications (IDNA).
Em caso de erro (por exemplo, se a entrada for inválida), a string de entrada é retornada.
Observe que aplicar idnaEncode() e idnaDecode() repetidamente não necessariamente retorna a string original devido à normalização de maiúsculas e minúsculas.
Sintaxe
Argumentos
Valor retornado
Retorna uma representação Unicode (UTF-8) da string de entrada, de acordo com o mecanismo IDNA do valor de entrada. String
Exemplos
Exemplo de uso
SELECT idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')
┌─idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')─┐
│ straße.münchen.de │
└───────────────────────────────────────────────┘
Introduzido em: v24.1.0
Retorna a representação ASCII (algoritmo ToASCII) de um nome de domínio de acordo com o mecanismo Internationalized Domain Names in Applications (IDNA).
A string de entrada deve estar codificada em UTF e ser convertível em uma string ASCII; caso contrário, uma exceção é gerada.
Nenhuma decodificação de porcentagem nem remoção de tabulações, espaços ou caracteres de controle é realizada.
Sintaxe
Argumentos
Valor retornado
Retorna uma representação ASCII da string de entrada de acordo com o mecanismo IDNA do valor de entrada. String
Exemplos
Exemplo de uso
SELECT idnaEncode('straße.münchen.de')
┌─idnaEncode('straße.münchen.de')─────┐
│ xn--strae-oqa.xn--mnchen-3ya.de │
└─────────────────────────────────────┘
Introduzido na versão: v23.7.0
Converte a primeira letra de cada palavra em maiúscula e o restante em minúsculas.
As palavras são sequências de caracteres alfanuméricos separadas por caracteres não alfanuméricos.
Como initcap converte apenas a primeira letra de cada palavra em maiúscula, você pode observar um comportamento inesperado em palavras que contêm apóstrofos ou letras maiúsculas.
Esse comportamento é conhecido e, no momento, não há planos para corrigi-lo.
Sintaxe
Argumentos
Valor retornado
Retorna s com a primeira letra de cada palavra convertida em maiúscula. String
Exemplos
Exemplo de uso
SELECT initcap('building for fast')
┌─initcap('building for fast')─┐
│ Building For Fast │
└──────────────────────────────┘
Exemplo de comportamento conhecido para palavras com apóstrofos ou letras maiúsculas
SELECT initcap('John''s cat won''t eat.');
┌─initcap('Joh⋯n\'t eat.')─┐
│ John'S Cat Won'T Eat. │
└──────────────────────────┘
Introduzido em: v23.7.0
Assim como initcap, initcapUTF8 converte a primeira letra de cada palavra em maiúscula e as demais em minúscula.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção é lançada e o resultado é indefinido.
Esta função não detecta o idioma; por exemplo, no turco, o resultado pode não estar exatamente correto (i/İ vs. i/I).
Se o comprimento da sequência de bytes em UTF-8 for diferente entre as versões em maiúsculas e minúsculas de um ponto de código, o resultado poderá estar incorreto para esse ponto de código.
Sintaxe
Argumentos
Valor retornado
Retorna s com a primeira letra de cada palavra convertida em maiúscula. String
Exemplos
Exemplo de uso
SELECT initcapUTF8('не тормозит')
┌─initcapUTF8('не тормозит')─┐
│ Не Тормозит │
└────────────────────────────┘
Introduzido em: v25.9.0
Retorna 1 se a String ou FixedString de entrada contiver apenas bytes ASCII (0x00–0x7F); caso contrário, retorna 0. Otimizado para o caso positivo (a entrada é ASCII válido).
Sintaxe
Aliases: isASCII
Argumentos
Valor retornado
Exemplos
isValidASCII
SELECT isValidASCII('hello') AS is_ascii, isValidASCII('你好') AS is_not_ascii
Introduzido em: v20.1.0
Verifica se o conjunto de bytes forma um texto válido codificado em UTF-8.
Sintaxe
Argumentos
s — A string cuja validade da codificação UTF-8 será verificada. String
Valor retornado
Retorna 1 se o conjunto de bytes constituir um texto válido codificado em UTF-8; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT isValidUTF8('\\xc3\\xb1') AS valid, isValidUTF8('\\xc3\\x28') AS invalid
┌─valid─┬─invalid─┐
│ 1 │ 0 │
└───────┴─────────┘
Introduzido em: v24.1.0
Calcula a similaridade de Jaro entre duas sequências de bytes.
Sintaxe
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna a similaridade de Jaro entre as duas strings. Float64
Exemplos
Exemplo de uso
SELECT jaroSimilarity('clickhouse', 'click')
┌─jaroSimilarity('clickhouse', 'click')─┐
│ 0.8333333333333333 │
└───────────────────────────────────────┘
Introduzido em: v24.1.0
Calcula a similaridade de Jaro-Winkler entre duas sequências de bytes.
Sintaxe
jaroWinklerSimilarity(s1, s2)
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna a similaridade de Jaro-Winkler entre as duas strings. Float64
Exemplos
Exemplo de uso
SELECT jaroWinklerSimilarity('clickhouse', 'click')
┌─jaroWinklerSimilarity('clickhouse', 'click')─┐
│ 0.8999999999999999 │
└──────────────────────────────────────────────┘
Introduzido em: v22.1.0
Retorna uma substring da string s com um offset especificado a partir da esquerda.
Sintaxe
Argumentos
s — A string da qual será calculada uma substring. String ou FixedString
offset — O número de bytes do deslocamento. (U)Int*
Valor retornado
Retorna:
- Para
offset positivo, uma substring de s com offset bytes, começando à esquerda da string.
- Para
offset negativo, uma substring de s com length(s) - |offset| bytes, começando à esquerda da string.
- Uma string vazia se
length for 0.
String
Exemplos
Deslocamento positivo
SELECT left('Hello World', 5)
Offset negativo
SELECT left('Hello World', -6)
Introduzido na versão: v21.8.0
Preenche uma string à esquerda com espaços ou com uma string especificada (repetida várias vezes, se necessário) até que a string resultante atinja o length especificado.
Sintaxe
leftPad(string, length[, pad_string])
Aliases: lpad
Argumentos
string — String de entrada a ser preenchida. String
length — O comprimento da string resultante. Se o valor for menor que o comprimento da string de entrada, a string de entrada será truncada para length caracteres. (U)Int*
pad_string — Opcional. A string usada para preencher a string de entrada. Se não for especificada, a string de entrada será preenchida com espaços. String
Valor retornado
Retorna uma string preenchida à esquerda com o comprimento especificado. String
Exemplos
Exemplo de uso
SELECT leftPad('abc', 7, '*'), leftPad('def', 7)
┌─leftPad('abc', 7, '*')─┬─leftPad('def', 7)─┐
│ ****abc │ def │
└────────────────────────┴───────────────────┘
Introduzido na: v21.8.0
Preenche uma string UTF-8 à esquerda com espaços ou com uma string especificada (repetida várias vezes, se necessário) até que a string resultante atinja o comprimento especificado.
Ao contrário de leftPad, que mede o comprimento da string em bytes, aqui o comprimento da string é medido em pontos de código.
Sintaxe
leftPadUTF8(string, length[, pad_string])
Argumentos
string — String de entrada que deve ser preenchida. String
length — O comprimento da string resultante. Se o valor for menor que o comprimento da string de entrada, a string de entrada será truncada para length caracteres. (U)Int*
pad_string — Opcional. A string usada para preencher a string de entrada. Se não for especificada, a string de entrada será preenchida com espaços. String
Valor retornado
Retorna uma string preenchida à esquerda com o comprimento especificado. String
Exemplos
Exemplo de uso
SELECT leftPadUTF8('абвг', 7, '*'), leftPadUTF8('дежз', 7)
┌─leftPadUTF8('абвг', 7, '*')─┬─leftPadUTF8('дежз', 7)─┐
│ ***абвг │ дежз │
└─────────────────────────────┴────────────────────────┘
Introduzido em: v22.1.0
Retorna uma substring da string s codificada em UTF-8, com um offset especificado, a partir da esquerda.
Sintaxe
Argumentos
s — A string codificada em UTF-8 da qual será extraída uma substring. String ou FixedString
offset — O deslocamento em bytes. (U)Int*
Valor retornado
Retorna:
- Para
offset positivo, uma substring de s com offset bytes, começando a partir da esquerda da string.\n”
- Para
offset negativo, uma substring de s com length(s) - |offset| bytes, começando a partir da esquerda da string.\n”
- Uma string vazia se
length for 0.
String
Exemplos
Offset positivo
SELECT leftUTF8('Привет', 4)
OFFSET negativo
SELECT leftUTF8('Привет', -4)
Introduzido em: v1.1.0
Retorna o tamanho de uma string em pontos de código Unicode, em vez de em bytes ou caracteres.
Supõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção é gerada, e o resultado é indefinido.
Sintaxe
Aliases: CHARACTER_LENGTH, CHAR_LENGTH
Argumentos
s — String que contém texto válido codificado em UTF-8. String
Valor retornado
Comprimento da string s em pontos de código Unicode. UInt64
Exemplos
Exemplo de uso
SELECT lengthUTF8('Здравствуй, мир!')
┌─lengthUTF8('Здравствуй, мир!')─┐
│ 16 │
└────────────────────────────────┘
Introduzido em: v1.1.0
Converte uma cadeia de caracteres ASCII em minúsculas.
Sintaxe
Aliases: lcase
Argumentos
s — Uma string a ser convertida para minúsculas. String
Valor retornado
Retorna s em minúsculas. String
Exemplos
Exemplo de uso
SELECT lower('CLICKHOUSE')
┌─lower('CLICKHOUSE')─┐
│ clickhouse │
└─────────────────────┘
Introduzido em: v1.1.0
Converte uma string para minúsculas, assumindo que ela contém texto válido codificado em UTF-8. Se essa suposição for violada, nenhuma exceção será lançada e o resultado será indefinido.
Sintaxe
Argumentos
input — String de entrada a ser convertida em minúsculas. String
Valor retornado
Retorna uma string em minúsculas. String
Exemplos
primeiro
SELECT lowerUTF8('München') as Lowerutf8;
Introduzido em: v26.3.0
A função é usada para ordenação natural.
Sintaxe
Aliases: NATURAL_SORT_KEY
Argumentos
s — Uma string a ser convertida em uma chave de ordenação natural. String
Valor retornado
Retorna uma string de chave de ordenação natural a partir de s. String
Exemplos
Exemplo de uso
SELECT s FROM t ORDER BY naturalSortKey(s)
┌─s───┐
│ a1 │
| a02 │
└─────┘
Introduzido em: v21.11.0
Normaliza uma string UTF-8 de acordo com a forma de normalização NFC.
Sintaxe
Argumentos
str — string de entrada codificada em UTF-8. String
Valor retornado
Retorna a forma normalizada NFC da string UTF-8. String
Exemplos
Exemplo de uso
SELECT
'é' AS original, -- e + acento agudo combinado (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 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘
Introduzido em: v21.11.0
Normaliza uma string UTF-8 de acordo com a forma de normalização NFD.
Sintaxe
Argumentos
str — string de entrada codificada em UTF-8. String
Valor retornado
Retorna a forma normalizada em NFD da string UTF-8. String
Exemplos
Exemplo de uso
SELECT
'é' AS original, -- é (U+00E9)
length(original),
normalizeUTF8NFD('é') AS nfd_normalized, -- e + acento agudo combinante (U+0065 + U+0301)
length(nfd_normalized);
┌─original─┬─length(original)─┬─nfd_normalized─┬─length(nfd_normalized)─┐
│ é │ 2 │ é │ 3 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘
Introduzido em: v21.11.0
Normaliza uma string UTF-8 segundo a forma de normalização NFKC.
Sintaxe
Argumentos
str — string de entrada codificada em UTF-8. String
Valor retornado
Retorna a forma normalizada em NFKC da string UTF-8. String
Exemplos
Exemplo de uso
SELECT
'① ② ③' AS original, -- Caracteres de números em círculo
normalizeUTF8NFKC('① ② ③') AS nfkc_normalized; -- Converte para 1 2 3
┌─original─┬─nfkc_normalized─┐
│ ① ② ③ │ 1 2 3 │
└──────────┴─────────────────┘
normalizeUTF8NFKCCasefold
Introduzido em: v26.3.0
Normaliza uma string UTF-8 de acordo com a forma de normalização NFKC_Casefold, que aplica a normalização NFKC e, em seguida, o case folding.
Isso é útil para comparação sem distinção entre maiúsculas e minúsculas de identificadores.
Sintaxe
normalizeUTF8NFKCCasefold(str)
Argumentos
str — string de entrada codificada em UTF-8. String
Valor retornado
Retorna a forma normalizada NFKC_Casefold da string em UTF-8. String
Exemplos
Exemplo de uso
SELECT
'Ä ① Hello' AS original,
normalizeUTF8NFKCCasefold('Ä ① Hello') AS nfkc_cf_normalized;
┌─original───┬─nfkc_cf_normalized─┐
│ Ä ① Hello │ ä 1 hello │
└────────────┴────────────────────┘
Introduzido em: v21.11.0
Normaliza uma string UTF-8 de acordo com a forma de normalização NFKD.
Sintaxe
Argumentos
str — String de entrada codificada em UTF-8. String
Valor retornado
Retorna a forma normalizada em NFKD da string UTF-8. String
Exemplos
Exemplo de uso
SELECT
'H₂O²' AS original, -- H + subscrito 2 + O + sobrescrito 2
normalizeUTF8NFKD('H₂O²') AS nfkd_normalized; -- Converte para H 2 O 2
┌─original─┬─nfkd_normalized─┐
│ H₂O² │ H2O2 │
└──────────┴─────────────────┘
Introduzido em: v24.1.0
Retorna o plaintext codificado em UTF-8 de uma string codificada em Punycode.
Se nenhuma string codificada em Punycode válida for fornecida, uma exceção será lançada.
Sintaxe
Argumentos
s — String codificada em Punycode. String
Valor retornado
Retorna o texto em claro do valor de entrada. String
Exemplos
Exemplo de uso
SELECT punycodeDecode('Mnchen-3ya')
┌─punycodeDecode('Mnchen-3ya')─┐
│ München │
└──────────────────────────────┘
Introduzido em: v24.1.0
Retorna a representação em Punycode de uma string.
A string deve estar codificada em UTF8; caso contrário, o comportamento é indefinido.
Sintaxe
Argumentos
Valor retornado
Retorna uma representação em Punycode do valor de entrada. String
Exemplos
Exemplo de uso
SELECT punycodeEncode('München')
┌─punycodeEncode('München')─┐
│ Mnchen-3ya │
└───────────────────────────┘
Introduzido em: v23.2.0
Extrai a primeira string de haystack que corresponde ao padrão da expressão regular e ao índice do grupo da regex.
Sintaxe
regexpExtract(haystack, pattern[, index])
Aliases: REGEXP_EXTRACT
Argumentos
haystack — String na qual será feita a correspondência com o padrão regexp. String
pattern — String, expressão regexp. pattern pode conter vários grupos regexp; index indica qual grupo regex extrair. Um índice de 0 significa corresponder à expressão regular inteira. const String
index — Opcional. Um número inteiro maior ou igual a 0, com valor padrão 1. Representa qual grupo regex extrair. (U)Int*
Valor retornado
Retorna a correspondência como uma string String
Exemplos
Exemplo de uso
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+)-(\\d+)', 1)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)', 2)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)', 0)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)')─┐
│ 100 │ 200 │ 100-200 │ 100 │
└──────────────────────────────────────────────┴──────────────────────────────────────────────┴──────────────────────────────────────────────┴───────────────────────────────────────────┘
Introduzido em: v26.5.0
Retorna a posição em bytes (indexada em 1) da occurrence-ésima correspondência de pattern em haystack, iniciando a busca na posição de byte position.
Se return_option for 0 (padrão), retorna a posição do primeiro byte da correspondência. Se for 1, retorna a posição do primeiro byte após a correspondência.
Se subexpression for maior que 0, retorna a posição do grupo de captura correspondente em vez da correspondência completa.
Retorna 0 se nenhuma correspondência for encontrada ou se o grupo de captura solicitado não tiver participado da correspondência.
Fornecido para compatibilidade com o regexp_instr do PostgreSQL (também exposto com esse alias). Observe que as posições são baseadas em bytes, em linha com outras funções de regex do ClickHouse; o regexp_instr do PostgreSQL é baseado em caracteres.
Sintaxe
regexpPosition(haystack, pattern[, position[, occurrence[, return_option[, flags[, subexpression]]]]])
Aliases: regexpInstr, regexp_instr
Argumentos
haystack — String na qual pesquisar. String
pattern — Padrão da expressão regular. const String
position — Opcional. Posição em bytes, baseada em 1, para iniciar a busca. Padrão: 1. (U)Int*
occurrence — Opcional. Qual ocorrência retornar. Padrão: 1. (U)Int*
return_option — Opcional. 0 retorna a posição do início da correspondência; 1 retorna a posição logo após a correspondência. Padrão: 0. (U)Int*
flags — Opcional. Flags de regex. Suportadas: i (sem diferenciar maiúsculas de minúsculas), c (diferenciando maiúsculas de minúsculas), m/n (âncoras multilinha), s (o ponto corresponde a nova linha). Padrão: string vazia. const String
subexpression — Opcional. Índice do grupo de captura cuja posição deve ser retornada. 0 significa a correspondência inteira. Padrão: 0. (U)Int*
Valor retornado
Retorna a posição em bytes da correspondência ou 0, se não for encontrada. UInt64
Exemplos
Uso básico
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);
┌─...─┬─...─┬─...─┬─...─┬─...─┐
│ 7 │ 4 │ 5 │ 7 │ 10 │
└─────┴─────┴─────┴─────┴─────┘
Introduzido em: v26.3.0
Remove marcas diacríticas (acentos) de uma string UTF-8 ao decompor caracteres via NFD,
remover marcas de combinação (categoria Unicode Mn) e, em seguida, recompô-los via NFC.
Sintaxe
removeDiacriticsUTF8(str)
Aliases: removeAccentsUTF8
Argumentos
str — string de entrada codificada em UTF-8. String
Valor retornado
String em UTF-8 sem diacríticos. String
Exemplos
Remoção básica de acentos
SELECT removeDiacriticsUTF8('café résumé naïve')
┌─removeDiacriticsUTF8('café résumé naïve')─┐
│ cafe resume naive │
└────────────────────────────────────────────┘
Introduzido em: v20.1.0
Concatena uma string a ela mesma o número de vezes especificado.
Sintaxe
Argumentos
s — A string a ser repetida. String
n — O número de vezes que a string será repetida. (U)Int*
Valor retornado
Uma string que contém s repetida n vezes. Se n for negativo, a função retorna uma string vazia. String
Exemplos
Exemplo de uso
┌─repeat('abc', 10)──────────────┐
│ abcabcabcabcabcabcabcabcabcabc │
└────────────────────────────────┘
Introduzido em: v1.1.0
Inverte uma sequência de pontos de código Unicode em uma string.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, não é lançada nenhuma exceção e o resultado é indefinido.
Sintaxe
Argumentos
s — String que contém texto codificado em UTF-8 válido. String
Valor retornado
Retorna uma string com a sequência de pontos de código Unicode invertida. String
Exemplos
Exemplo de uso
SELECT reverseUTF8('ClickHouse')
Introduzido em: v22.1.0
Retorna uma substring da string s, com o offset especificado, a partir da direita.
Sintaxe
Argumentos
s — A string da qual será extraída uma substring. String ou FixedString
offset — A quantidade de bytes do deslocamento. (U)Int*
Valor retornado
Retorna:
- Para
offset positivo, uma substring de s com offset bytes, a partir da direita da string.
- Para
offset negativo, uma substring de s com length(s) - |offset| bytes, a partir da direita da string.
- Uma string vazia se
length for 0.
String
Exemplos
Deslocamento positivo
Offset negativo
SELECT right('Hello', -3)
Introduzido em: v21.8.0
Preenche uma string à direita com espaços ou com uma string especificada (repetida várias vezes, se necessário) até que a string resultante atinja o length especificado.
Sintaxe
rightPad(string, length[, pad_string])
Aliases: rpad
Argumentos
string — String de entrada que deve ser preenchida. String
length — O comprimento da string resultante. Se o valor for menor que o comprimento da string de entrada, a string de entrada será truncada para length caracteres. (U)Int*
pad_string — Opcional. A string usada para preencher a string de entrada. Se não for especificada, a string de entrada será preenchida com espaços. String
Valor retornado
Retorna uma string preenchida à direita com o comprimento especificado. String
Exemplos
Exemplo de uso
SELECT rightPad('abc', 7, '*'), rightPad('abc', 7)
┌─rightPad('abc', 7, '*')─┬─rightPad('abc', 7)─┐
│ abc**** │ abc │
└─────────────────────────┴────────────────────┘
Introduzido na versão: v21.8.0
Preenche a string à direita com espaços ou com uma string especificada (repetida várias vezes, se necessário) até que a string resultante atinja o comprimento informado.
Diferentemente de rightPad, que mede o comprimento da string em bytes, aqui o comprimento da string é medido em pontos de código.
Sintaxe
rightPadUTF8(string, length[, pad_string])
Argumentos
string — String de entrada que deve ser preenchida. String
length — O comprimento da string resultante. Se o valor for menor que o comprimento da string de entrada, a string de entrada será truncada para length caracteres. (U)Int*
pad_string — Opcional. A string usada para preencher a string de entrada. Se não for especificada, a string de entrada será preenchida com espaços. String
Valor retornado
Retorna uma string preenchida à direita com o comprimento informado. String
Exemplos
Exemplo de uso
SELECT rightPadUTF8('абвг', 7, '*'), rightPadUTF8('абвг', 7)
┌─rightPadUTF8('абвг', 7, '*')─┬─rightPadUTF8('абвг', 7)─┐
│ абвг*** │ абвг │
└──────────────────────────────┴─────────────────────────┘
Introduzido na versão: v22.1.0
Retorna uma substring da string codificada em UTF-8 s, com um offset especificado a partir da direita.
Sintaxe
Argumentos
s — A string codificada em UTF-8 da qual uma substring será calculada. String ou FixedString
offset — O número de bytes do deslocamento. (U)Int*
Valor retornado
Retorna:
- Para
offset positivo, uma substring de s com offset bytes, começando pela direita da string.
- Para
offset negativo, uma substring de s com length(s) - |offset| bytes, começando pela direita da string.
- Uma string vazia se
length for 0.
String
Exemplos
Deslocamento positivo
SELECT rightUTF8('Привет', 4)
OFFSET negativo
SELECT rightUTF8('Привет', -4)
Introduzido em: v23.4.0
Retorna o código Soundex de uma cadeia de caracteres.
Sintaxe
Argumentos
s — Cadeia de caracteres de entrada. String
Valor retornado
Retorna o código Soundex da cadeia de caracteres de entrada. String
Exemplos
Exemplo de uso
┌─soundex('aksel')─┐
│ A240 │
└──────────────────┘
Introduzido em: v23.5.0
Concatena um espaço ( ) consigo mesmo o número de vezes especificado.
Sintaxe
Argumentos
n — O número de vezes que o espaço deve ser repetido. (U)Int*
Valor retornado
Retorna uma string contendo um espaço repetido n vezes. Se n <= 0, a função retorna uma string vazia. String
Exemplos
Exemplo de uso
SELECT space(3) AS res, length(res);
┌─res─┬─length(res)─┐
│ │ 3 │
└─────┴─────────────┘
Introduzido em: v25.5.0
Encontra todas as substrings de uma string com comprimento de pelo menos n,
em que os hashes dos (n-1)-gramas nas extremidades da substring
são estritamente maiores do que os de qualquer (n-1)-grama dentro da substring.
Usa CRC32 como função de hash.
Sintaxe
sparseGrams(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])
Argumentos
s — Uma string de entrada. String
min_ngram_length — Opcional. O comprimento mínimo do n-grama extraído. O valor padrão e mínimo é 3. UInt*
max_ngram_length — Opcional. O comprimento máximo do n-grama extraído. O valor padrão é 100. Não deve ser menor que min_ngram_length. UInt*
min_cutoff_length — Opcional. Se especificado, apenas n-gramas com comprimento maior ou igual a min_cutoff_length são retornados. O valor padrão é o mesmo de min_ngram_length. Não deve ser menor que min_ngram_length nem maior que max_ngram_length. UInt*
Valor retornado
Retorna um array das substrings selecionadas. Array(String)
Exemplos
Exemplo de uso
SELECT sparseGrams('alice', 3)
┌─sparseGrams('alice', 3)────────────┐
│ ['ali','lic','lice','ice'] │
└────────────────────────────────────┘
Introduzido em: v25.5.0
Retorna os hashes de todas as substrings de uma determinada string com comprimento de pelo menos n,
em que os hashes dos (n-1)-gramas nas bordas da substring
são estritamente maiores do que os de qualquer (n-1)-grama dentro da substring.
Usa CRC32 como função de hash.
Sintaxe
sparseGramsHashes(s[, min_ngram_length, max_ngram_length])
Argumentos
s — Uma string de entrada. String
min_ngram_length — Opcional. O comprimento mínimo do n-grama extraído. O valor padrão e mínimo é 3. UInt*
max_ngram_length — Opcional. O comprimento máximo do n-grama extraído. O valor padrão é 100. Não deve ser menor que min_ngram_length. UInt*
min_cutoff_length — Opcional. Se especificado, apenas n-gramas com comprimento maior ou igual a min_cutoff_length são retornados. O valor padrão é o mesmo de min_ngram_length. Não deve ser menor que min_ngram_length nem maior que max_ngram_length. UInt*
Valor retornado
Retorna um array de hashes CRC32 das substrings selecionadas. Array(UInt32)
Exemplos
Exemplo de uso
SELECT sparseGramsHashes('alice', 3)
┌─sparseGramsHashes('alice', 3)──────────────────────┐
│ [1481062250,2450405249,4012725991,1918774096] │
└────────────────────────────────────────────────────┘
Introduzido em: v25.5.0
Encontra os hashes de todas as substrings de uma determinada string UTF-8 com comprimento de pelo menos n, em que os hashes dos (n-1)-gramas nas bordas da substring são estritamente maiores do que os de qualquer (n-1)-grama no interior da substring.
Espera uma string UTF-8 e lança uma exceção em caso de sequência UTF-8 inválida.
Usa CRC32 como função de hash.
Sintaxe
sparseGramsHashesUTF8(s[, min_ngram_length, max_ngram_length])
Argumentos
s — Uma string de entrada. String
min_ngram_length — Opcional. O comprimento mínimo do n-grama extraído. O valor padrão e mínimo é 3. UInt*
max_ngram_length — Opcional. O comprimento máximo do n-grama extraído. O valor padrão é 100. Não deve ser menor que min_ngram_length. UInt*
min_cutoff_length — Opcional. Se especificado, retorna apenas n-gramas com comprimento maior ou igual a min_cutoff_length. O valor padrão é o mesmo de min_ngram_length. Não deve ser menor que min_ngram_length nem maior que max_ngram_length. UInt*
Valor retornado
Retorna um array com os hashes CRC32 das substrings UTF-8 selecionadas. Array(UInt32)
Exemplos
Exemplo de uso
SELECT sparseGramsHashesUTF8('алиса', 3)
┌─sparseGramsHashesUTF8('алиса', 3)─┐
│ [4178533925,3855635300,561830861] │
└───────────────────────────────────┘
Introduzido em: v25.5.0
Encontra todas as substrings de uma determinada string UTF-8 com comprimento de pelo menos n, em que os hashes dos (n-1)-gramas nas bordas da substring são estritamente maiores do que os de qualquer (n-1)-grama dentro dela.
Aceita uma string UTF-8 e lança uma exceção em caso de sequência UTF-8 inválida.
Usa CRC32 como função de hash.
Sintaxe
sparseGramsUTF8(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])
Argumentos
s — Uma string de entrada. String
min_ngram_length — Opcional. O comprimento mínimo do ngrama extraído. O valor padrão e mínimo é 3. UInt*
max_ngram_length — Opcional. O comprimento máximo do ngrama extraído. O valor padrão é 100. Não deve ser menor que min_ngram_length. UInt*
min_cutoff_length — Opcional. Se especificado, somente n-gramas com comprimento maior ou igual a min_cutoff_length são retornados. O valor padrão é o mesmo de min_ngram_length. Não deve ser menor que min_ngram_length nem maior que max_ngram_length. UInt*
Valor retornado
Retorna um array das substrings em UTF-8 selecionadas. Array(String)
Exemplos
Exemplo de uso
SELECT sparseGramsUTF8('алиса', 3)
┌─sparseGramsUTF8('алиса', 3)─┐
│ ['али','лис','иса'] │
└─────────────────────────────┘
Introduzido em: v1.1.0
Verifica se uma string começa com a sequência de caracteres fornecida.
Sintaxe
Argumentos
s — String a ser verificada. String
prefix — Prefixo a ser verificado. String
Valor retornado
Retorna 1 se s começar com prefix; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT startsWith('ClickHouse', 'Click');
┌─startsWith('⋯', 'Click')─┐
│ 1 │
└──────────────────────────┘
startsWithCaseInsensitive
Introduzido em: v25.10.0
Verifica se uma string começa com a string fornecida, sem diferenciar maiúsculas de minúsculas.
Sintaxe
startsWithCaseInsensitive(s, prefix)
Argumentos
s — String a ser verificada. String
prefix — prefixo sem distinção entre maiúsculas e minúsculas a ser verificado. String
Valor retornado
Retorna 1 se s começar com o prefix sem distinção entre maiúsculas e minúsculas; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT startsWithCaseInsensitive('ClickHouse', 'CLICK');
┌─startsWithCaseInsensitive('⋯', 'CLICK')─┐
│ 1 │
└─────────────────────────────────────────┘
startsWithCaseInsensitiveUTF8
Introduzido em: v25.10.0
Verifica se uma string começa com o prefixo fornecido sem diferenciar maiúsculas de minúsculas.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção é lançada e o resultado é indefinido.
Sintaxe
startsWithCaseInsensitiveUTF8(s, prefix)
Argumentos
s — String a ser verificada. String
prefix — Prefixo sem distinção entre maiúsculas e minúsculas a ser verificado. String
Valor retornado
Retorna 1 se s começar com o prefix sem distinção entre maiúsculas e minúsculas; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT startsWithCaseInsensitiveUTF8('приставка', 'при')
┌─startsWithUT⋯ка', 'при')─┐
│ 1 │
└──────────────────────────┘
Introduzido em: v23.8.0
Verifica se uma string começa com o prefixo informado.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção é lançada e o resultado é indefinido.
Sintaxe
startsWithUTF8(s, prefix)
Argumentos
s — String a ser verificada. String
prefix — Prefixo a ser verificado. String
Valor retornado
Retorna 1 se s começar com prefix; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
SELECT startsWithUTF8('приставка', 'при')
┌─startsWithUT⋯ка', 'при')─┐
│ 1 │
└──────────────────────────┘
Introduzido em: v25.6.0
Calcula a entropia de Shannon da distribuição de bytes em uma string.
Sintaxe
Argumentos
s — A string a ser analisada. String
Valor retornado
Retorna a entropia de Shannon da distribuição dos bytes na string. Float64
Exemplos
Exemplo de uso
SELECT stringBytesEntropy('Hello, world!')
┌─stringBytesEntropy('Hello, world!')─┐
│ 3.07049960 │
└─────────────────────────────────────┘
Introduzido em: v25.6.0
Conta o número de bytes distintos em uma string.
Sintaxe
Argumentos
s — A string a ser analisada. String
Valor retornado
Retorna o número de bytes distintos na string. UInt16
Exemplos
Exemplo de uso
SELECT stringBytesUniq('Hello')
┌─stringBytesUniq('Hello')─┐
│ 4 │
└──────────────────────────┘
Introduzido em: v23.11.0
Calcula o índice de similaridade de Jaccard entre duas sequências de bytes.
Sintaxe
stringJaccardIndex(s1, s2)
Argumentos
s1 — Primeira string de entrada. String
s2 — Segunda string de entrada. String
Valor retornado
Retorna o índice de similaridade de Jaccard entre as duas strings. Float64
Exemplos
Exemplo de uso
SELECT stringJaccardIndex('clickhouse', 'mouse')
┌─stringJaccardIndex('clickhouse', 'mouse')─┐
│ 0.4 │
└───────────────────────────────────────────┘
Introduzido em: v23.11.0
Semelhante a stringJaccardIndex, mas para strings codificadas em UTF8.
Sintaxe
stringJaccardIndexUTF8(s1, s2)
Argumentos
s1 — Primeira string UTF-8 de entrada. String
s2 — Segunda string UTF-8 de entrada. String
Valor retornado
Retorna o índice de similaridade Jaccard entre as duas strings UTF-8. Float64
Exemplos
Exemplo de uso
SELECT stringJaccardIndexUTF8('我爱你', '我也爱你')
┌─stringJaccardIndexUTF8('我爱你', '我也爱你')─┐
│ 0.75 │
└─────────────────────────────────────────────┘
Introduzido em: v1.1.0
Retorna a substring de uma string s que começa no índice de byte offset especificado.
A contagem de bytes começa em 1, com a seguinte lógica:
- Se
offset for 0, retorna uma string vazia.
- Se
offset for negativo, a substring começa a offset caracteres do fim da string, em vez do início.
Um argumento opcional, length, especifica o número máximo de bytes que a substring retornada pode ter.
Sintaxe
substring(s, offset[, length])
Aliases: byteSlice, mid, substr
Argumentos
s — A string a partir da qual a substring será calculada. String ou FixedString ou Enum
offset — A posição inicial da substring em s. (U)Int*
length — Opcional. O comprimento máximo da substring. (U)Int*
Valor retornado
Retorna uma substring de s com length bytes, começando no índice offset. String
Exemplos
Uso básico
SELECT 'database' AS db, substr(db, 5), substr(db, 5, 1)
┌─db───────┬─substring('database', 5)─┬─substring('database', 5, 1)─┐
│ database │ base │ b │
└──────────┴──────────────────────────┴─────────────────────────────┘
Introduzido em: v23.7.0
Retorna a substring de s anterior a count ocorrências do delimitador delim, como no Spark ou no MySQL.
Sintaxe
substringIndex(s, delim, count)
Aliases: SUBSTRING_INDEX
Argumentos
s — A string da qual a substring será extraída. String
delim — O caractere usado para separar. String
count — O número de ocorrências do delimitador a contar antes de extrair a substring. Se count for positivo, tudo à esquerda do delimitador final (contando da esquerda) será retornado. Se count for negativo, tudo à direita do delimitador final (contando da direita) será retornado. UInt ou Int
Valor retornado
Retorna uma substring de s antes de count ocorrências de delim. String
Exemplos
Exemplo de uso
SELECT substringIndex('www.clickhouse.com', '.', 2)
┌─substringIndex('www.clickhouse.com', '.', 2)─┐
│ www.clickhouse │
└──────────────────────────────────────────────┘
Introduzido em: v23.7.0
Retorna a substring de s que precede count ocorrências do delimitador delim, especificamente para pontos de código Unicode.
Pressupõe que a string contenha texto válido codificado em UTF-8.
Se essa suposição for violada, não é lançada nenhuma exceção e o resultado é indefinido.
Sintaxe
substringIndexUTF8(s, delim, count)
Argumentos
s — A string da qual a substring será extraída. String
delim — O caractere delimitador. String
count — O número de ocorrências do delimitador a serem contadas antes de extrair a substring. Se count for positivo, tudo à esquerda do delimitador final (contando da esquerda) será retornado. Se count for negativo, tudo à direita do delimitador final (contando da direita) será retornado. UInt ou Int
Valor retornado
Retorna uma substring de s antes de count ocorrências de delim. String
Exemplos
Exemplo em UTF8
SELECT substringIndexUTF8('www.straßen-in-europa.de', '.', 2)
Introduzido em: v1.1.0
Retorna a substring de uma string s que começa no índice de ponto de código offset especificado.
A contagem de pontos de código começa em 1, de acordo com a seguinte lógica:
- Se
offset for 0, será retornada uma string vazia.
- Se
offset for negativo, a substring começa a offset pontos de código do final da string, em vez de começar no início.
Um argumento opcional, length, especifica o número máximo de pontos de código que a substring retornada pode ter.
Esta função pressupõe que a string contém texto válido codificado em UTF-8.
Se essa suposição for violada, nenhuma exceção será lançada, e o resultado será indefinido.
Sintaxe
substringUTF8(s, offset[, length])
Argumentos
s — A string da qual extrair uma substring. String ou FixedString ou Enum
offset — A posição inicial da substring em s. Int ou UInt
length — O comprimento máximo da substring. Opcional. Int ou UInt
Valor retornado
Retorna uma substring de s com length pontos de código, começando no índice de ponto de código offset. String
Exemplos
Exemplo de uso
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
Introduzido em: v20.1.0
Converte uma string para uma codificação UTF-8 válida, substituindo quaisquer caracteres UTF-8 inválidos pelo caractere de substituição � (U+FFFD).
Quando vários caracteres inválidos consecutivos são encontrados, eles são condensados em um único caractere de substituição.
Sintaxe
Argumentos
s — Qualquer conjunto de bytes representado como um objeto do tipo de dado String. String
Valor retornado
Retorna uma string UTF-8 válida. String
Exemplos
Exemplo de uso
SELECT toValidUTF8('\\x61\\xF0\\x80\\x80\\x80b')
c
┌─toValidUTF8('a����b')─┐
│ a�b │
└───────────────────────┘
Introduzido em: v20.1.0
Remove os caracteres especificados do início e do fim de uma string.
Por padrão, remove caracteres ASCII de espaço em branco comuns.
Sintaxe
trimBoth(s[, trim_characters])
Aliases: trim
Argumentos
s — String a ser processada. String
trim_characters — Opcional. Caracteres a serem removidos das extremidades. Se não for especificado, caracteres comuns de espaço em branco serão removidos. String
Valor retornado
Retorna a string com os caracteres especificados removidos de ambas as extremidades. String
Exemplos
Exemplo de uso
SELECT trimBoth('$$ClickHouse$$', '$')
┌─trimBoth('$$⋯se$$', '$')─┐
│ ClickHouse │
└──────────────────────────┘
Introduzido em: v20.1.0
Remove os caracteres especificados do início de uma string.
Por padrão, remove caracteres de espaço em branco (ASCII) comuns.
Sintaxe
trimLeft(input[, trim_characters])
Aliases: ltrim
Argumentos
input — String da qual os caracteres serão removidos. String
trim_characters — Opcional. Caracteres a serem removidos. Se não for especificado, caracteres de espaço em branco comuns serão removidos. String
Valor retornado
Retorna a string com os caracteres especificados removidos à esquerda. String
Exemplos
Exemplo de uso
SELECT trimLeft('ClickHouse', 'Click');
┌─trimLeft('Cl⋯', 'Click')─┐
│ House │
└──────────────────────────┘
Introduzido na versão: v20.1.0
Remove os caracteres especificados do fim de uma string.
Por padrão, remove caracteres de espaço em branco (ASCII) comuns.
Sintaxe
trimRight(s[, trim_characters])
Aliases: rtrim
Argumentos
s — String da qual remover caracteres. String
trim_characters — Caracteres opcionais a serem removidos. Se não forem especificados, caracteres de espaço em branco comuns serão removidos. String
Valor retornado
Retorna a string com os caracteres especificados removidos à direita. String
Exemplos
Exemplo de uso
SELECT trimRight('ClickHouse','House');
┌─trimRight('C⋯', 'House')─┐
│ Click │
└──────────────────────────┘
Introduzido em: v25.6.0
Aceita uma string e a decodifica usando a codificação Base32.
Sintaxe
Argumentos
encoded — coluna String ou constante a ser decodificada. Se a string não estiver codificada em Base32 válida, retorna uma string vazia em caso de erro. String
Valor retornado
Retorna uma string contendo o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT tryBase32Decode('IVXGG33EMVSA====');
┌─tryBase32Decode('IVXGG33EMVSA====')─┐
│ Encoded │
└─────────────────────────────────────┘
Introduzido em: v22.10.0
Semelhante a base58Decode, mas retorna uma string vazia em caso de erro.
Sintaxe
tryBase58Decode(encoded[, expected_size])
Argumentos
encoded — coluna String ou constante. Se a string não for codificada em Base58 válida, retorna uma string vazia em caso de erro. String
expected_size — Opcional. Tamanho esperado após a decodificação, em bytes. Quando for 32 ou 64, será usado um decodificador otimizado; para outros valores, será usado o decodificador genérico. UInt8, UInt16, UInt32 ou UInt64
Valor retornado
Retorna uma string contendo o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT tryBase58Decode('3dc8KtHrwM') AS res, tryBase58Decode('invalid') AS res_invalid;
┌─res─────┬─res_invalid─┐
│ Encoded │ │
└─────────┴─────────────┘
Introduzido em: v18.16.0
Assim como base64Decode, mas retorna uma string vazia em caso de erro.
Sintaxe
Argumentos
encoded — coluna String ou constante a ser decodificada. Se a string não for uma Base64 válida, retorna uma string vazia em caso de erro. String
Valor retornado
Retorna uma string contendo o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT tryBase64Decode('Y2xpY2tob3VzZQ==')
┌─tryBase64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse │
└─────────────────────────────────────┘
Introduzido na versão: v18.16.0
Assim como base64URLDecode, mas retorna uma string vazia em caso de erro.
Sintaxe
tryBase64URLDecode(encoded)
Argumentos
encoded — coluna String ou constante a ser decodificada. Se a string não for uma string codificada em Base64 válida, retorna uma string vazia em caso de erro. String
Valor retornado
Retorna uma string que contém o valor decodificado do argumento. String
Exemplos
Exemplo de uso
SELECT tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
┌─tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com │
└──────────────────────────────────────────────────────┘
Introduzido na versão: v24.1.0
Retorna a representação em Unicode (UTF-8) (algoritmo ToUnicode) de um nome de domínio de acordo com o mecanismo Internationalized Domain Names in Applications (IDNA).
Em caso de erro, retorna uma string vazia em vez de gerar uma exceção.
Sintaxe
Argumentos
Valor retornado
Retorna uma representação ASCII da string de entrada de acordo com o mecanismo IDNA do valor de entrada, ou uma string vazia se a entrada for inválida. String
Exemplos
Exemplo de uso
SELECT tryIdnaEncode('straße.münchen.de')
┌─tryIdnaEncode('straße.münchen.de')──┐
│ xn--strae-oqa.xn--mnchen-3ya.de │
└─────────────────────────────────────┘
Introduzido em: v24.1.0
Como punycodeDecode, mas retorna uma string vazia se não for fornecida uma string codificada em Punycode válida.
Sintaxe
Argumentos
s — String codificada em Punycode. String
Valor retornado
Retorna o valor de entrada em texto simples ou uma string vazia se a entrada for inválida. String
Exemplos
Exemplo de uso
SELECT tryPunycodeDecode('Mnchen-3ya')
┌─tryPunycodeDecode('Mnchen-3ya')─┐
│ München │
└─────────────────────────────────┘
Introduzido na versão: v1.1.0
Converte os caracteres latinos ASCII de uma string em maiúsculas.
Sintaxe
Aliases: ucase
Argumentos
s — A string a ser convertida para letras maiúsculas. String
Valor retornado
Retorna s em letras maiúsculas. String
Exemplos
Exemplo de uso
SELECT upper('clickhouse')
┌─upper('clickhouse')─┐
│ CLICKHOUSE │
└─────────────────────┘
Introduzido em: v1.1.0
Converte uma string em maiúsculas, assumindo que a string contém texto válido codificado em UTF-8.
Se essa suposição não for atendida, nenhuma exceção será lançada e o resultado será indefinido.
Esta função não detecta o idioma; por exemplo, para o turco, o resultado pode não estar exatamente correto (i/İ vs. i/I).
Se o comprimento da sequência de bytes UTF-8 for diferente entre as formas maiúscula e minúscula de um ponto de código (como ẞ e ß), o resultado pode estar incorreto para esse ponto de código.
Sintaxe
Argumentos
s — Um valor do tipo String. String
Valor retornado
Um valor do tipo de dados String. String
Exemplos
Exemplo de uso
SELECT upperUTF8('München') AS Upperutf8
┌─Upperutf8─┐
│ MÜNCHEN │
└───────────┘