Pular para o conteúdo principal

Visão geral

As funções mencionadas nesta seção são otimizadas para máximo desempenho e, em sua maior parte, não seguem o padrão RFC-3986. As funções que implementam a RFC-3986 têm RFC acrescentado ao nome da função e, em geral, são mais lentas.
Em geral, você pode usar as variantes de função sem RFC ao trabalhar com domínios registrados publicamente que não contenham informações de usuário nem símbolos @. A tabela abaixo detalha quais símbolos em uma URL podem () ou não podem () ser interpretados pelas respectivas variantes com RFC e sem RFC:
Símbolonon-RFCRFC
’ ’
\t
<
>
%✔*
{
}
\
^
~✔*
[
]
;✔*
=✔*
&✔*
os símbolos marcados com * são subdelimitadores na RFC 3986 e permitidos para informações do usuário após o símbolo @. Há dois tipos de funções de URL:
  • Funções que extraem partes de uma URL. Se a parte relevante não estiver presente em uma URL, uma string vazia será retornada.
  • Funções que removem parte de uma URL. Se a URL não tiver nada equivalente, ela permanecerá inalterada.
As funções abaixo são geradas a partir da tabela de sistema system.functions.

URLHierarchy

Introduzido em: v1.1.0 Retorna um array contendo a URL, truncada no final pelos símbolos /, ? e # no caminho e na string de consulta. Caracteres separadores consecutivos são considerados como um só. O resultado inclui o protocolo e o host como primeiro elemento, com caminhos progressivamente mais longos formando uma hierarquia. Sintaxe
URLHierarchy(url)
Argumentos
  • url — A URL a ser processada. String
Valor retornado Retorna um array de URLs progressivamente mais longas, que formam uma hierarquia. Array(String) Exemplos Uso básico
Query
SELECT URLHierarchy('https://example.com/a/b?c=1')
Response
['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1']

URLPathHierarchy

Introduzido em: v1.1.0 Retorna um array que contém o componente path da URL, truncado no final pelos símbolos /, ? e #. Diferentemente de URLHierarchy, o resultado não inclui o protocolo nem o host — ele começa no path. Caracteres separadores consecutivos são considerados como um só. Sintaxe
URLPathHierarchy(url)
Argumentos
  • url — A URL a ser processada. String
Valor retornado Retorna um array de componentes do caminho da URL progressivamente mais longos, formando uma hierarquia. Array(String) Exemplos Uso básico
Query
SELECT URLPathHierarchy('https://example.com/a/b?c=1')
Response
['/a/','/a/b','/a/b?c=1']

cutFragment

Introduzido em: v1.1.0 Remove o identificador de fragmento, incluindo o caractere #, de uma URL. Sintaxe
cutFragment(url)
Argumentos Valor retornado Retorna a URL sem o identificador de fragmento. String Exemplos Exemplo de uso
Query
SELECT cutFragment('http://example.com/path?query=value#fragment123');
Response
┌─cutFragment('http://example.com/path?query=value#fragment123')─┐
│ http://example.com/path?query=value                            │
└────────────────────────────────────────────────────────────────┘

cutQueryString

Introduzido em: v1.1.0 Remove a string de consulta, incluindo o ponto de interrogação, de uma URL. Sintaxe
cutQueryString(url)
Argumentos Valor retornado Retorna a URL sem a string de consulta. String Exemplos Exemplo de uso
Query
SELECT cutQueryString('http://example.com/path?query=value&param=123#fragment');
Response
┌─cutQueryString('http://example.com/path?query=value&param=123#fragment')─┐
│ http://example.com/path#fragment                                         │
└──────────────────────────────────────────────────────────────────────────┘

cutQueryStringAndFragment

Introduzido em: v1.1.0 Remove a string de consulta e o identificador de fragmento de uma URL, incluindo o ponto de interrogação e o sinal de cerquilha (#). Sintaxe
cutQueryStringAndFragment(url)
Argumentos Valor retornado Retorna a URL sem a string de consulta e o identificador de fragmento. String Exemplos Exemplo de uso
Query
SELECT cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment');
Response
┌─cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment')─┐
│ http://example.com/path                                                             │
└─────────────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomain

Introduzido em: v1.1.0 Retorna a parte do domínio que abrange os subdomínios de nível superior até o primeiro subdomínio significativo. Sintaxe
cutToFirstSignificantSubdomain(url)
Argumentos
  • url — URL ou string de domínio a ser processada. String
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, quando possível; caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT
    cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomain('www.tr'),
    cutToFirstSignificantSubdomain('tr');
Response
┌─cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/')─┬─cutToFirstSignificantSubdomain('www.tr')─┬─cutToFirstSignificantSubdomain('tr')─┐
│ clickhouse.com.tr                                                 │ tr                                       │                                      │
└───────────────────────────────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────┘

cutToFirstSignificantSubdomainCustom

Introduzido em: v21.1.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. Aceita o nome de uma lista de TLD personalizada. Esta função pode ser útil se você precisar de uma lista de TLD atualizada ou se tiver uma lista personalizada. Exemplo de configuração
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTA: o caminho está sob top_level_domains_path -->
</top_level_domains_lists>
Sintaxe
cutToFirstSignificantSubdomainCustom(url, tld_list_name)
Argumentos
  • url — String de URL ou de domínio a ser processada. String
  • tld_list_name — Nome da lista personalizada de TLD configurada no ClickHouse. const String
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. String Exemplos Usando uma lista personalizada de TLD para domínios não padrão
Query
SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list')
Response
foo.there-is-no-such-domain

cutToFirstSignificantSubdomainCustomRFC

Introduzido em: v22.10.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. Aceita o nome de uma lista de TLDs personalizada. Essa função pode ser útil se você precisar de uma lista de TLDs atualizada ou se tiver uma lista personalizada. Semelhante a cutToFirstSignificantSubdomainCustom, mas em conformidade com a RFC 3986. Exemplo de configuração
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTA: o caminho está sob top_level_domains_path -->
</top_level_domains_lists>
Sintaxe
cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name)
Argumentos
  • url — String de URL ou de domínio a ser processada de acordo com a RFC 3986. - tld_list_name — Nome da lista personalizada de TLD configurada no ClickHouse.
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. String Exemplos Exemplo de uso
Query
SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
Response
┌─cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list')─────┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWW

Introduzido na versão: v21.1.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover ‘www’. Aceita o nome de uma lista personalizada de TLDs. Pode ser útil se você precisar de uma lista de TLDs mais atualizada ou se tiver uma lista personalizada. Exemplo de configuração
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: o path está dentro de top_level_domains_path -->
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name)
Argumentos
  • url — URL ou string de domínio a ser processada. - tld_list_name — Nome da lista personalizada de TLD configurada no ClickHouse.
Valor retornado Parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover ‘www’. String Exemplos Exemplo de uso
Query
SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list');
Response
┌─cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list')─┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWWRFC

Introduzido em: v22.10.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover www. Aceita o nome de uma lista personalizada de TLDs. Pode ser útil se você precisar de uma lista de TLDs atualizada ou se tiver uma lista personalizada. Semelhante a cutToFirstSignificantSubdomainCustomWithWWW, mas está em conformidade com a RFC 3986. Exemplo de configuração
{/* <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> */}
<top_level_domains_lists>
    {/* https://publicsuffix.org/list/public_suffix_list.dat */}
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    {/* NOTA: path está em top_level_domains_path */}
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name)
Argumentos
  • url — URL ou string de domínio a ser processado de acordo com a RFC 3986. - tld_list_name — Nome da lista de TLD personalizada configurada no ClickHouse.
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover www. String Exemplos Processamento RFC 3986 preservando www com lista de TLD personalizada
Query
SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
Response
www.example.custom

cutToFirstSignificantSubdomainRFC

Introduzido em: v22.10.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o “primeiro subdomínio significativo”. É semelhante a cutToFirstSignificantSubdomain, mas está em conformidade com a RFC 3986. Sintaxe
cutToFirstSignificantSubdomainRFC(url)
Argumentos
  • url — URL ou string de domínio a ser processado de acordo com a RFC 3986. String
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, se possível; caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT
    cutToFirstSignificantSubdomain('http://user:password@example.com:8080'),
    cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080');
Response
┌─cutToFirstSignificantSubdomain('http://user:password@example.com:8080')─┬─cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080')─┐
│                                                                         │ example.com                                                                │
└─────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainWithWWW

Introduzido em: v20.12.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o “primeiro subdomínio significativo”, sem remover ‘www.’. Semelhante a cutToFirstSignificantSubdomain, mas preserva o prefixo ‘www.’, se presente. Sintaxe
cutToFirstSignificantSubdomainWithWWW(url)
Argumentos
  • url — URL ou string de domínio a ser processada. String
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo (incluindo www), quando possível; caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT
    cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomainWithWWW('www.tr'),
    cutToFirstSignificantSubdomainWithWWW('tr');
Response
┌─cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/')─┬─cutToFirstSignificantSubdomainWithWWW('www.tr')─┬─cutToFirstSignificantSubdomainWithWWW('tr')─┐
│ clickhouse.com.tr                                                        │ www.tr                                          │                                             │
└──────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────┴─────────────────────────────────────────────┘

cutToFirstSignificantSubdomainWithWWWRFC

Introduzido em: v22.10.0 Retorna a parte do domínio que inclui os subdomínios de nível superior até o “primeiro subdomínio significativo”, sem remover ‘www’. Semelhante a cutToFirstSignificantSubdomainWithWWW, mas em conformidade com a RFC 3986. Sintaxe
cutToFirstSignificantSubdomainWithWWWRFC(url)
Argumentos
  • url — URL ou string de domínio a ser processado de acordo com a RFC 3986.
Valor retornado Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo (com ‘www’), se possível; caso contrário, retorna uma string vazia String Exemplos Exemplo de uso
Query
SELECT
    cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy'),
    cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy');
Response
┌─cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy')─┬─cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy')─┐
│                                                                                       │ mail.ru                                                                                  │
└───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘

cutURLParameter

Introduzido em: v1.1.0 Remove o parâmetro name de uma URL, se ele estiver presente. Esta função não codifica nem decodifica caracteres nos nomes dos parâmetros; por exemplo, Client ID e Client%20ID são tratados como nomes de parâmetros diferentes. Sintaxe
cutURLParameter(url, name)
Argumentos Valor retornado URL com o parâmetro name removido. String Exemplos Exemplo de uso
Query
SELECT
    cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', 'a') AS url_without_a,
    cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', ['c', 'e']) AS url_without_c_and_e;
Response
┌─url_without_a────────────────┬─url_without_c_and_e──────┐
│ http://bigmir.net/?c=d&e=f#g │ http://bigmir.net/?a=b#g │
└──────────────────────────────┴──────────────────────────┘

cutWWW

Introduzido em: v1.1.0 Remove o prefixo www., se presente, do domínio da URL. Sintaxe
cutWWW(url)
Argumentos Valor retornado Retorna a URL com o prefixo www. removido do domínio. String Exemplos Exemplo de uso
Query
SELECT cutWWW('http://www.example.com/path?query=value#fragment');
Response
┌─cutWWW('http://www.example.com/path?query=value#fragment')─┐
│ http://example.com/path?query=value#fragment               │
└────────────────────────────────────────────────────────────┘

decodeURLComponent

Introduzido em: v1.1.0 Recebe como entrada uma string codificada em URL e a decodifica para sua forma original e legível. Sintaxe
decodeURLComponent(url)
Argumentos Valor retornado Retorna a URL decodificada. String Exemplos Exemplo de uso
Query
SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS DecodedURL;
Response
┌─DecodedURL─────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1; │
└────────────────────────────────────────┘

decodeURLFormComponent

Introduzido em: v1.1.0 Decodifica strings codificadas em URL usando regras de codificação de formulários (RFC-1866), em que os sinais de + são convertidos em espaços e os caracteres codificados por percentual são decodificados. Sintaxe
decodeURLFormComponent(url)
Argumentos Valor retornado Retorna a URL decodificada. String Exemplos Exemplo de uso
Query
SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') AS DecodedURL;
Response
┌─DecodedURL────────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1 2+3 │
└───────────────────────────────────────────┘

domain

Introduzido em: v1.1.0 Extrai o nome do host de uma URL. A URL pode ser especificada com ou sem protocolo. Sintaxe
domain(url)
Argumentos Valor retornado Retorna o nome do host se a string de entrada puder ser interpretada como uma URL; caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk');
Response
┌─domain('svn+ssh://some.svn-hosting.com:80/repo/trunk')─┐
│ some.svn-hosting.com                                   │
└────────────────────────────────────────────────────────┘

domainRFC

Introduzido em: v22.10.0 Extrai o hostname de uma URL. Semelhante a domain, mas compatível com a RFC 3986. Sintaxe
domainRFC(url)
Argumentos Valor retornado Retorna o nome do host se a string de entrada puder ser interpretada como uma URL; caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT
    domain('http://user:password@example.com:8080/path?query=value#fragment'),
    domainRFC('http://user:password@example.com:8080/path?query=value#fragment');
Response
┌─domain('http://user:password@example.com:8080/path?query=value#fragment')─┬─domainRFC('http://user:password@example.com:8080/path?query=value#fragment')─┐
│                                                                           │ example.com                                                                  │
└───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘

domainWithoutWWW

Introduzido em: v1.1.0 Retorna o domínio de uma URL sem o www. inicial, se houver. Sintaxe
domainWithoutWWW(url)
Argumentos Valor retornado Retorna o nome de domínio se a string de entrada puder ser interpretada como uma URL (sem www. no início); caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT domainWithoutWWW('http://paul@www.example.com:80/');
Response
┌─domainWithoutWWW('http://paul@www.example.com:80/')─┐
│ example.com                                         │
└─────────────────────────────────────────────────────┘

domainWithoutWWWRFC

Introduzido em: v1.1.0 Retorna o domínio sem www. no início, se houver. Semelhante a domainWithoutWWW, mas em conformidade com a RFC 3986. Sintaxe
domainWithoutWWWRFC(url)
Argumentos Valor retornado Retorna o nome de domínio se a string de entrada puder ser interpretada como uma URL (sem www. no início); caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT
    domainWithoutWWW('http://user:password@www.example.com:8080/path?query=value#fragment'),
    domainWithoutWWWRFC('http://user:password@www.example.com:8080/path?query=value#fragment');
Response
┌─domainWithoutWWW('http://user:password@www.example.com:8080/path?query=value#fragment')─┬─domainWithoutWWWRFC('http://user:password@www.example.com:8080/path?query=value#fragment')─┐
│                                                                                         │ example.com                                                                                │
└─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘

encodeURLComponent

Introduzido em: v22.3.0 Recebe uma string comum e a converte para o formato codificado para URL (percent-encoded), no qual caracteres especiais são substituídos por seus equivalentes codificados por porcentagem. Sintaxe
encodeURLComponent(url)
Argumentos Valor retornado Retorna a URL codificada. String Exemplos Exemplo de uso
Query
SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedURL;
Response
┌─EncodedURL───────────────────────────────────────────────┐
│ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT%201%3B │
└──────────────────────────────────────────────────────────┘

encodeURLFormComponent

Introduzido na versão: v22.3.0 Codifica strings usando regras de codificação de formulários (RFC-1866), em que os espaços são convertidos em sinais de + e os caracteres especiais são codificados por percentual. Sintaxe
encodeURLFormComponent(url)
Argumentos Valor retornado Retorna a URL codificada. String Exemplos Exemplo de uso
Query
SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS EncodedURL;
Response
┌─EncodedURL────────────────────────────────────────────────┐
│ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT+1+2%2B3 │
└───────────────────────────────────────────────────────────┘

extractURLParameter

Introduzido em: v1.1.0 Retorna o valor do parâmetro name na URL, se ele estiver presente; caso contrário, retorna uma string vazia. Se houver vários parâmetros com esse nome, a primeira ocorrência será retornada. A função pressupõe que o parâmetro no argumento url esteja codificado da mesma forma que no argumento name. Sintaxe
extractURLParameter(url, name)
Argumentos Valor retornado Retorna o valor do parâmetro da URL com o nome especificado. String Exemplos Exemplo de uso
Query
SELECT extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1');
Response
┌─extractURLPa⋯, 'param1')─┐
│ value1                   │
└──────────────────────────┘

extractURLParameterNames

Introduzido em: v1.1.0 Retorna um array de strings com os nomes correspondentes aos parâmetros de URL. Os valores não são decodificados. Sintaxe
extractURLParameterNames(url)
Argumentos Valor retornado Retorna um array de strings com os nomes dos parâmetros de URL. Array(String) Exemplos Exemplo de uso
Query
SELECT extractURLParameterNames('http://example.com/?param1=value1&param2=value2');
Response
┌─extractURLPa⋯m2=value2')─┐
│ ['param1','param2']      │
└──────────────────────────┘

extractURLParameters

Introduzido em: v1.1.0 Retorna um array de strings name=value correspondente aos parâmetros da URL. Os valores não são decodificados. Sintaxe
extractURLParameters(url)
Argumentos Valor retornado Retorna um array de strings name=value correspondentes aos parâmetros da URL. Array(String) Exemplos Exemplo de uso
Query
SELECT extractURLParameters('http://example.com/?param1=value1&param2=value2');
Response
┌─extractURLParame⋯&param2=value2')─┐
│ ['param1=value1','param2=value2'] │
└───────────────────────────────────┘

firstSignificantSubdomain

Introduzido em: v1.1.0 Retorna o “primeiro subdomínio significativo”. O primeiro subdomínio significativo é um domínio de segundo nível se for ‘com’, ‘net’, ‘org’ ou ‘co’. Caso contrário, é um domínio de terceiro nível. Por exemplo, firstSignificantSubdomain(‘https://news.clickhouse.com/&#39;) = ‘clickhouse’, firstSignificantSubdomain (‘https://news.clickhouse.com.tr/&#39;) = ‘clickhouse’. A lista de domínios de segundo nível “insignificantes” e outros detalhes de implementação poderão mudar no futuro. Sintaxe
firstSignificantSubdomain(url)
Argumentos
  • Nenhum.
Valor retornado Exemplos firstSignificantSubdomain
Query
SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
Response

firstSignificantSubdomainCustom

Introduzido em: v21.1.0 Retorna o subdomínio significativo de uma URL usando uma lista personalizada de TLDs (Top-Level Domains). O nome dessa lista personalizada de TLDs se refere a uma configuração que define quais sufixos de domínio devem ser tratados como domínios de nível superior. Isso é útil para hierarquias de TLDs não padrão. A função usa um algoritmo simplificado de parsing de URL, que pressupõe que o protocolo e tudo o que vem depois já foram removidos. Sintaxe
firstSignificantSubdomainCustom(url, tld_list_name)
Argumentos
  • url — A URL da qual o subdomínio será extraído. String
  • tld_list_name — Nome da lista de TLD personalizada da configuração. String
Valor retornado Retorna o subdomínio significativo. String Exemplos Uso básico
Query
SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list')
Response
example

firstSignificantSubdomainCustomRFC

Introduzido na versão: v22.10.0 Semelhante a firstSignificantSubdomainCustom, mas usa parsing de URL compatível com a RFC 3986 em vez do algoritmo simplificado. Sintaxe
firstSignificantSubdomainCustomRFC(url, tld_list_name)
Argumentos
  • url — URL da qual o subdomínio será extraído. String
  • tld_list_name — Nome da lista de TLD personalizada da configuração. String
Valor retornado Retorna o primeiro subdomínio significativo. String Exemplos Uso básico
Query
SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list')
Response
example

firstSignificantSubdomainRFC

Introduzido em: v22.10.0 Retorna o “primeiro subdomínio significativo” de acordo com a RFC 1034. Sintaxe
firstSignificantSubdomainRFC(url)
Argumentos
  • Nenhum.
Valor de retorno Exemplos

fragment

Introduzido em: v1.1.0 Retorna o identificador do fragmento sem o símbolo hash inicial. Sintaxe
fragment(url)
Argumentos Valor retornado Retorna o identificador do fragmento sem o símbolo hash inicial. String Exemplos Exemplo de uso
Query
SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1-create-a-clickhouse-service');
Response
┌─fragment('http⋯ouse-service')─┐
│ 1-create-a-clickhouse-service │
└───────────────────────────────┘

netloc

Introduzido em: v20.5.0 Extrai a parte de rede (username:password@host:port) de uma URL. Sintaxe
netloc(url)
Argumentos Valor retornado Retorna username:password@host:port a partir de uma determinada URL. String Exemplos Exemplo de uso
Query
SELECT netloc('http://paul@www.example.com:80/');
Response
┌─netloc('http⋯e.com:80/')─┐
│ paul@www.example.com:80  │
└──────────────────────────┘

path

Introduzido em: v1.1.0 Retorna o caminho de uma URL sem a query string. Sintaxe
path(url)
Argumentos Valor retornado Retorna o caminho da URL, sem a query string. String Exemplos Exemplo de uso
Query
SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value');
Response
┌─path('https://clickhouse.com/en/sql-reference/functions/url-functions/?query=value')─┐
│ /docs/sql-reference/functions/url-functions/                                         │
└──────────────────────────────────────────────────────────────────────────────────────┘

pathFull

Introduzido em: v1.1.0 Igual a path, mas inclui a string de consulta e o fragmento da URL. Sintaxe
pathFull(url)
Argumentos Valor retornado Retorna o caminho da URL, incluindo a query string e o fragmento. String Exemplos Exemplo de uso
Query
SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value#section');
Response
┌─pathFull('https://clickhouse.com⋯unctions/?query=value#section')─┐
│ /docs/sql-reference/functions/url-functions/?query=value#section │
└──────────────────────────────────────────────────────────────────┘

port

Introduzido em: v20.5.0 Retorna a porta de uma URL ou default_port se a URL não contiver uma porta ou não puder ser analisada. Sintaxe
port(url[, default_port])
Argumentos
  • url — URL. String
  • default_port — Opcional. O número da porta padrão a ser retornado. 0 por padrão. UInt16
Valor retornado Retorna a porta da URL ou a porta padrão caso não haja porta na URL ou ocorra um erro de validação. UInt16 Exemplos Exemplo de uso
Query
SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/docs', 443);
Response
┌─port('https://clickhouse.com:8443/docs')─┬─port('https://clickhouse.com/docs', 443)─┐
│                                     8443 │                                      443 │
└──────────────────────────────────────────┴──────────────────────────────────────────┘

portRFC

Introduzido em: v22.10.0 Retorna a porta ou default_port se a URL não contiver uma porta ou não puder ser analisada. Semelhante a port, mas em conformidade com a RFC 3986. Sintaxe
portRFC(url[, default_port])
Argumentos
  • url — URL. String
  • default_port — Opcional. Número da porta padrão a ser retornado. 0 por padrão. UInt16
Valor retornado Retorna a porta ou a porta padrão se não houver uma porta na URL ou em caso de erro de validação. UInt16 Exemplos Exemplo de uso
Query
SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:password@example.com:8080/');
Response
┌─port('http:/⋯com:8080/')─┬─portRFC('htt⋯com:8080/')─┐
│                        0 │                     8080 │
└──────────────────────────┴──────────────────────────┘

protocol

Introduzido em: v1.1.0 Extrai o protocolo de uma URL. Exemplos de valores retornados comuns: http, https, ftp, mailto, tel, magnet. Sintaxe
protocol(url)
Argumentos Valor retornado Retorna o protocolo da URL ou uma string vazia, caso não seja possível determiná-lo. String Exemplos Exemplo de uso
Query
SELECT protocol('https://clickhouse.com/');
Response
┌─protocol('https://clickhouse.com/')─┐
│ https                               │
└─────────────────────────────────────┘

queryString

Introduzido em: v1.1.0 Retorna a query string de uma URL, sem o ponto de interrogação inicial, o # nem nada após o #. Sintaxe
queryString(url)
Argumentos Valor retornado Retorna a query string da URL sem o ponto de interrogação inicial e o fragmento. String Exemplos Exemplo de uso
Query
SELECT queryString('https://clickhouse.com/docs?query=value&param=123#section');
Response
┌─queryString(⋯3#section')─┐
│ query=value&param=123    │
└──────────────────────────┘

queryStringAndFragment

Introduzido em: v1.1.0 Retorna a query string e o identificador de fragmento de uma URL. Sintaxe
queryStringAndFragment(url)
Argumentos Valor retornado Retorna a query string e o identificador de fragmento da URL. String Exemplos Exemplo de uso
Query
SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value&param=123#section');
Response
┌─queryStringAnd⋯=123#section')─┐
│ query=value&param=123#section │
└───────────────────────────────┘

topLevelDomain

Introduzido em: v1.1.0 Extrai o domínio de nível superior de uma URL.
A URL pode ser especificada com ou sem protocolo. Por exemplo:
svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://clickhouse.com/time/
Sintaxe
topLevelDomain(url)
Argumentos Valor retornado Retorna o nome de domínio se a string de entrada puder ser interpretada como uma URL. Caso contrário, retorna uma string vazia. String Exemplos Exemplo de uso
Query
SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk');
Response
┌─topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')─┐
│ com                                                                │
└────────────────────────────────────────────────────────────────────┘

topLevelDomainRFC

Introduzido em: v22.10.0 Extrai o domínio de nível superior de uma URL. Semelhante a topLevelDomain, mas em conformidade com a RFC 3986. Sintaxe
topLevelDomainRFC(url)
Argumentos Valor retornado Nome de domínio, se a string de entrada puder ser interpretada como uma URL. Caso contrário, uma string vazia. String Exemplos Exemplo de uso
Query
SELECT topLevelDomain('http://foo:foo%41bar@foo.com'), topLevelDomainRFC('http://foo:foo%41bar@foo.com');
Response
┌─topLevelDomain('http://foo:foo%41bar@foo.com')─┬─topLevelDomainRFC('http://foo:foo%41bar@foo.com')─┐
│                                                │ com                                               │
└────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
Última modificação em 10 de junho de 2026