Saltar al contenido principal

Descripción general

Las funciones mencionadas en esta sección están optimizadas para ofrecer el máximo rendimiento y, en su mayor parte, no siguen el estándar RFC-3986. Las funciones que implementan RFC-3986 llevan RFC al final del nombre y, por lo general, son más lentas.
Por lo general, puedes usar las variantes de función sin RFC al trabajar con dominios registrados públicamente que no contienen ni cadenas de información de usuario ni símbolos @. La tabla siguiente detalla qué símbolos de una URL pueden () o no pueden () analizarse con las respectivas variantes RFC y sin RFC:
Símbolonon-RFCRFC
’ ’
\t
<
>
%✔*
{
}
\
^
~✔*
[
]
;✔*
=✔*
&✔*
Los símbolos marcados con * son subdelimitadores en RFC 3986 y están permitidos en la información de usuario después del símbolo @. Hay dos tipos de funciones de URL:
  • Funciones que extraen partes de una URL. Si la parte correspondiente no está presente en una URL, se devuelve una cadena vacía.
  • Funciones que eliminan una parte de una URL. Si la URL no tiene nada parecido, la URL permanece sin cambios.
Las funciones que aparecen a continuación se generan a partir de la tabla del sistema system.functions.

URLHierarchy

Introducido en: v1.1.0 Devuelve un array que contiene la URL truncada al final en los símbolos /, ? y # de la ruta y la cadena de consulta. Los caracteres separadores consecutivos se consideran uno solo. El resultado incluye el protocolo y el host como primer elemento, seguido de rutas cada vez más largas que forman una jerarquía. Sintaxis
URLHierarchy(url)
Argumentos
  • url — La URL que se debe procesar. String
Valor devuelto Devuelve un array de URL cada vez más largas que forman una jerarquía. Array(String) Ejemplos 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

Introducido en: v1.1.0 Devuelve un array que contiene el componente de ruta de la URL, truncado al final por los símbolos /, ? y #. A diferencia de URLHierarchy, el resultado no incluye el protocolo ni el host; empieza en la ruta. Los caracteres separadores consecutivos se cuentan como uno. Sintaxis
URLPathHierarchy(url)
Argumentos
  • url — La URL que se va a procesar. String
Valor devuelto Devuelve un array de componentes de la ruta de la URL cada vez más largos que forman una jerarquía. Array(String) Ejemplos Uso básico
Query
SELECT URLPathHierarchy('https://example.com/a/b?c=1')
Response
['/a/','/a/b','/a/b?c=1']

cutFragment

Introducido en: v1.1.0 Elimina el identificador de fragmento, incluida la almohadilla, de una URL. Sintaxis
cutFragment(url)
Argumentos Valor devuelto Devuelve la URL sin el identificador de fragmento. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Elimina la cadena de consulta de una URL, incluido el signo de interrogación. Sintaxis
cutQueryString(url)
Argumentos Valor devuelto Devuelve la URL sin la cadena de consulta. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Elimina la cadena de consulta y el identificador de fragmento de una URL, incluidos el signo de interrogación y el signo #. Sintaxis
cutQueryStringAndFragment(url)
Argumentos Valor devuelto Devuelve la URL sin la cadena de consulta ni el identificador del fragmento. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. Sintaxis
cutToFirstSignificantSubdomain(url)
Argumentos
  • url — URL o cadena de dominio para procesar. String
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, si es posible; de lo contrario, devuelve una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v21.1.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. Acepta el nombre de una lista de TLD personalizada. Esta función puede resultar útil si necesitas una lista de TLD actualizada o si tienes una lista personalizada. Ejemplo de configuración
<!-- <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: la ruta está bajo top_level_domains_path -->
</top_level_domains_lists>
Sintaxis
cutToFirstSignificantSubdomainCustom(url, tld_list_name)
Argumentos
  • url — URL o cadena de dominio que se va a procesar. String
  • tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse. const String
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. String Ejemplos Uso de una lista de TLD personalizada para dominios no estándar
Query
SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list')
Response
foo.there-is-no-such-domain

cutToFirstSignificantSubdomainCustomRFC

Introducido en: v22.10.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. Acepta el nombre de una lista de TLD personalizada. Esta función puede ser útil si necesitas una lista de TLD actualizada o si tienes una lista personalizada. Similar a cutToFirstSignificantSubdomainCustom, pero conforme con RFC 3986. Ejemplo de configuración
<!-- <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: la ruta está bajo top_level_domains_path -->
</top_level_domains_lists>
Sintaxis
cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name)
Argumentos
  • url — URL o cadena de dominio que se procesará según la RFC 3986. - tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse.
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. String Ejemplos Ejemplo de uso
Query
SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
Response
┌─cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list')─────┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWW

Introducido en: v21.1.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar ‘www’. Acepta el nombre de una lista de TLD personalizada. Puede ser útil si necesita una lista de TLD actualizada o si tiene una lista personalizada. Ejemplo de configuración
<!-- <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á bajo top_level_domains_path -->
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name)
Argumentos
  • url — URL o cadena de dominio que se procesará. - tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse.
Valor devuelto Parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar ‘www’. String Ejemplos Ejemplo de uso
Query
SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list');
Response
┌─cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list')─┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWWRFC

Introducido en: v22.10.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar www. Acepta un nombre de lista de TLD personalizada. Puede resultar útil si necesitas una lista de TLD actualizada o si tienes una lista personalizada. Es similar a cutToFirstSignificantSubdomainCustomWithWWW, pero cumple con RFC 3986. Ejemplo de configuración
{/* <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á dentro de top_level_domains_path */}
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name)
Argumentos
  • url — URL o cadena de dominio que se procesará conforme a RFC 3986. - tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse.
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar www. String Ejemplos Análisis según RFC 3986 que conserva www con una lista de TLD personalizada
Query
SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
Response
www.example.custom

cutToFirstSignificantSubdomainRFC

Introducido en: v22.10.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el “primer subdominio significativo”. Es similar a cutToFirstSignificantSubdomain, pero cumple con RFC 3986. Sintaxis
cutToFirstSignificantSubdomainRFC(url)
Argumentos
  • url — URL o cadena de dominio que se va a procesar según la RFC 3986. String
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, si es posible; en caso contrario, devuelve una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v20.12.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el “primer subdominio significativo”, sin eliminar ‘www.’. Es similar a cutToFirstSignificantSubdomain, pero conserva el prefijo ‘www.’ si está presente. Sintaxis
cutToFirstSignificantSubdomainWithWWW(url)
Argumentos
  • url — URL o cadena de dominio que se va a procesar. String
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo (con www), si es posible; de lo contrario, devuelve una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v22.10.0 Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el “primer subdominio significativo”, sin eliminar ‘www’. Es similar a cutToFirstSignificantSubdomainWithWWW, pero cumple con RFC 3986. Sintaxis
cutToFirstSignificantSubdomainWithWWWRFC(url)
Argumentos
  • url — URL o cadena de dominio que se procesará según la RFC 3986.
Valor devuelto Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo (con ‘www’), si es posible; de lo contrario, devuelve una cadena vacía String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Elimina el parámetro name de una URL, si está presente. Esta función no codifica ni descodifica los caracteres de los nombres de los parámetros; por ejemplo, Client ID y Client%20ID se tratan como nombres de parámetro distintos. Sintaxis
cutURLParameter(url, name)
Argumentos Valor devuelto URL con el parámetro name eliminado. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Elimina el prefijo www. del dominio de la URL, si está presente. Sintaxis
cutWWW(url)
Argumentos Valor devuelto Devuelve la URL con el prefijo www. eliminado del dominio. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Toma una cadena codificada en URL como entrada y la decodifica para devolverla a su forma original y legible. Sintaxis
decodeURLComponent(url)
Argumentos Valor devuelto Devuelve la URL decodificada. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Decodifica cadenas codificadas en URL según las reglas de codificación de formularios (RFC-1866), donde los signos + se convierten en espacios y se decodifican los caracteres codificados mediante porcentaje. Sintaxis
decodeURLFormComponent(url)
Argumentos Valor devuelto Devuelve la URL decodificada. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Extrae el hostname de una URL. La URL puede especificarse con o sin protocolo. Sintaxis
domain(url)
Argumentos Valor devuelto Devuelve el nombre del host si la cadena de entrada se puede analizar como una URL; de lo contrario, devuelve una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v22.10.0 Extrae el hostname de una URL. Similar a domain, pero cumple con RFC 3986. Sintaxis
domainRFC(url)
Argumentos Valor devuelto Devuelve el nombre del host si la cadena de entrada puede interpretarse como una URL; de lo contrario, una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Devuelve el dominio de una URL sin el prefijo www., si está presente. Sintaxis
domainWithoutWWW(url)
Argumentos Valor devuelto Devuelve el nombre de dominio si la cadena de entrada puede analizarse como una URL (sin www. al principio); de lo contrario, devuelve una cadena vacía. String Ejemplos Ejemplo de uso
Query
SELECT domainWithoutWWW('http://paul@www.example.com:80/');
Response
┌─domainWithoutWWW('http://paul@www.example.com:80/')─┐
│ example.com                                         │
└─────────────────────────────────────────────────────┘

domainWithoutWWWRFC

Introducido en: v1.1.0 Devuelve el dominio sin www. al principio, si está presente. Es similar a domainWithoutWWW, pero cumple con la RFC 3986. Sintaxis
domainWithoutWWWRFC(url)
Argumentos Valor devuelto Devuelve el nombre de dominio si la cadena de entrada puede analizarse como una URL (sin www. al principio); de lo contrario, devuelve una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v22.3.0 Toma una cadena normal y la convierte a un formato codificado para URL (codificación porcentual), en el que los caracteres especiales se reemplazan por sus equivalentes de codificación porcentual. Sintaxis
encodeURLComponent(url)
Argumentos Valor devuelto Devuelve la URL codificada. String Ejemplos Ejemplo 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

Introducido en: v22.3.0 Codifica cadenas según las reglas de codificación de formularios (RFC-1866), donde los espacios se convierten en signos + y los caracteres especiales se codifican mediante codificación porcentual. Sintaxis
encodeURLFormComponent(url)
Argumentos Valor devuelto Devuelve la URL codificada. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Devuelve el valor del parámetro name de la URL, si está presente; de lo contrario, devuelve una cadena vacía. Si hay varios parámetros con este nombre, se devuelve la primera coincidencia. La función asume que el parámetro del argumento url está codificado de la misma forma que el argumento name. Sintaxis
extractURLParameter(url, name)
Argumentos
  • url — URL. String
  • name — Nombre del parámetro. String
Valor devuelto Devuelve el valor del parámetro de la URL con el nombre indicado. String Ejemplos Ejemplo de uso
Query
SELECT extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1');
Response
┌─extractURLPa⋯, 'param1')─┐
│ value1                   │
└──────────────────────────┘

extractURLParameterNames

Introducido en: v1.1.0 Devuelve un array con las cadenas correspondientes a los nombres de los parámetros de URL. Los valores no se decodifican. Sintaxis
extractURLParameterNames(url)
Argumentos Valor devuelto Devuelve un array de cadenas con los nombres de los parámetros de la URL. Array(String) Ejemplos Ejemplo de uso
Query
SELECT extractURLParameterNames('http://example.com/?param1=value1&param2=value2');
Response
┌─extractURLPa⋯m2=value2')─┐
│ ['param1','param2']      │
└──────────────────────────┘

extractURLParameters

Introducido en: v1.1.0 Devuelve un array de cadenas name=value correspondientes a los parámetros de la URL. Los valores no se decodifican. Sintaxis
extractURLParameters(url)
Argumentos Valor devuelto Devuelve un array de cadenas con formato name=value correspondiente a los parámetros de URL. Array(String) Ejemplos Ejemplo de uso
Query
SELECT extractURLParameters('http://example.com/?param1=value1&param2=value2');
Response
┌─extractURLParame⋯&param2=value2')─┐
│ ['param1=value1','param2=value2'] │
└───────────────────────────────────┘

firstSignificantSubdomain

Introducido en: v1.1.0 Devuelve el “primer subdominio significativo”. El primer subdominio significativo es un dominio de segundo nivel si es ‘com’, ‘net’, ‘org’ o ‘co’. En caso contrario, es un dominio de tercer nivel. Por ejemplo, firstSignificantSubdomain(‘https://news.clickhouse.com/&#39;) = ‘clickhouse’, firstSignificantSubdomain(‘https://news.clickhouse.com.tr/&#39;) = ‘clickhouse’. La lista de dominios de segundo nivel “insignificantes” y otros detalles de implementación podrían cambiar en el futuro. Sintaxis
firstSignificantSubdomain(url)
Argumentos
  • Ninguno.
Valor devuelto Ejemplos firstSignificantSubdomain
Query
SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
Response

firstSignificantSubdomainCustom

Introducido en: v21.1.0 Devuelve el primer subdominio significativo de una URL a partir de una lista personalizada de TLD (dominios de nivel superior). El nombre de la lista personalizada de TLD hace referencia a una configuración que define qué sufijos de dominio deben tratarse como dominios de nivel superior. Esto resulta útil para jerarquías de TLD no estándar. La función utiliza un algoritmo simplificado de análisis de URL que asume que se han eliminado el protocolo y todo lo que le sigue. Sintaxis
firstSignificantSubdomainCustom(url, tld_list_name)
Argumentos
  • url — La URL de la que se extrae el subdominio. String
  • tld_list_name — Nombre de la lista personalizada de TLD de la configuración. String
Valor devuelto Devuelve el primer subdominio significativo. String Ejemplos Uso básico
Query
SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list')
Response
example

firstSignificantSubdomainCustomRFC

Introducido en: v22.10.0 Similar a firstSignificantSubdomainCustom, pero utiliza un análisis de URL compatible con RFC 3986 en lugar del algoritmo simplificado. Sintaxis
firstSignificantSubdomainCustomRFC(url, tld_list_name)
Argumentos
  • url — La URL de la que extraer el subdominio. String
  • tld_list_name — Nombre de la lista de TLD personalizada de la configuración. String
Valor devuelto Devuelve el primer subdominio significativo. String Ejemplos Uso básico
Query
SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list')
Response
example

firstSignificantSubdomainRFC

Introducido en: v22.10.0 Devuelve el “primer subdominio significativo” de acuerdo con la RFC 1034. Sintaxis
firstSignificantSubdomainRFC(url)
Argumentos
  • Ninguno.
Valor devuelto Ejemplos

fragment

Introducido en: v1.1.0 Devuelve el identificador del fragmento sin el símbolo hash inicial. Sintaxis
fragment(url)
Argumentos Valor devuelto Devuelve el identificador del fragmento sin el símbolo hash inicial. String Ejemplos Ejemplo 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

Introducido en: v20.5.0 Extrae la ubicación de red (username:password@host:port) de una URL. Sintaxis
netloc(url)
Argumentos Valor devuelto Devuelve username:password@host:port a partir de una URL dada. String Ejemplos Ejemplo de uso
Query
SELECT netloc('http://paul@www.example.com:80/');
Response
┌─netloc('http⋯e.com:80/')─┐
│ paul@www.example.com:80  │
└──────────────────────────┘

path

Introducido en: v1.1.0 Devuelve la ruta de una URL sin la cadena de consulta. Sintaxis
path(url)
Argumentos Valor devuelto Devuelve la ruta de la URL sin la cadena de consulta. String Ejemplos Ejemplo 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

Introducido en: v1.1.0 Igual que path, pero incluye la cadena de consulta y el fragmento de la URL. Sintaxis
pathFull(url)
Argumentos Valor devuelto Devuelve la ruta de la URL, incluida la cadena de consulta y el fragmento. String Ejemplos Ejemplo 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

Introducido en: v20.5.0 Devuelve el puerto de una URL, o default_port si la URL no incluye ningún puerto o no se puede analizar. Sintaxis
port(url[, default_port])
Argumentos
  • url — URL. String
  • default_port — Opcional. Número de puerto predeterminado que se devolverá. 0 de forma predeterminada. UInt16
Valor devuelto Devuelve el puerto de la URL o el puerto predeterminado si la URL no incluye un puerto o en caso de error de validación. UInt16 Ejemplos Ejemplo 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

Introducido en: v22.10.0 Devuelve el puerto o default_port si la URL no contiene ningún puerto o no se puede analizar. Similar a port, pero conforme a RFC 3986. Sintaxis
portRFC(url[, default_port])
Argumentos
  • url — URL. String
  • default_port — Opcional. Número de puerto predeterminado que se devuelve. 0 de forma predeterminada. UInt16
Valor devuelto Devuelve el puerto o el puerto predeterminado si la URL no contiene ningún puerto o en caso de error de validación. UInt16 Ejemplos Ejemplo 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

Introducido en: v1.1.0 Extrae el protocolo de una URL. Ejemplos de valores devueltos habituales: http, https, ftp, mailto, tel, magnet. Sintaxis
protocol(url)
Argumentos Valor devuelto Devuelve el protocolo de la URL o una cadena vacía si no se puede determinar. String Ejemplos Ejemplo de uso
Query
SELECT protocol('https://clickhouse.com/');
Response
┌─protocol('https://clickhouse.com/')─┐
│ https                               │
└─────────────────────────────────────┘

queryString

Introducido en: v1.1.0 Devuelve la cadena de consulta de una URL sin el signo de interrogación inicial, el # ni nada de lo que aparece después de #. Sintaxis
queryString(url)
Argumentos Valor devuelto Devuelve la cadena de consulta de la URL, sin el signo de interrogación inicial ni el fragmento. String Ejemplos Ejemplo de uso
Query
SELECT queryString('https://clickhouse.com/docs?query=value&param=123#section');
Response
┌─queryString(⋯3#section')─┐
│ query=value&param=123    │
└──────────────────────────┘

queryStringAndFragment

Introducido en: v1.1.0 Devuelve la cadena de consulta y el identificador de fragmento de una URL. Sintaxis
queryStringAndFragment(url)
Argumentos Valor devuelto Devuelve la cadena de consulta y el identificador de fragmento de la URL. String Ejemplos Ejemplo de uso
Query
SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value&param=123#section');
Response
┌─queryStringAnd⋯=123#section')─┐
│ query=value&param=123#section │
└───────────────────────────────┘

topLevelDomain

Introducido en: v1.1.0 Extrae el dominio de nivel superior de una URL.
La URL puede especificarse con o sin protocolo. Por ejemplo:
svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://clickhouse.com/time/
Sintaxis
topLevelDomain(url)
Argumentos Valor devuelto Devuelve el nombre de dominio si la cadena de entrada puede interpretarse como una URL. En caso contrario, devuelve una cadena vacía. String Ejemplos Ejemplo 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

Introducido en: v22.10.0 Extrae el dominio de nivel superior de una URL. Similar a topLevelDomain, pero conforme con la RFC 3986. Sintaxis
topLevelDomainRFC(url)
Argumentos Valor devuelto Nombre de dominio si la cadena de entrada puede interpretarse como una URL. En caso contrario, una cadena vacía. String Ejemplos Ejemplo 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 modificación el 10 de junio de 2026