Saltar al contenido principal

Reglas de comparación

Las funciones de comparación que aparecen a continuación devuelven 0 o 1 y son de tipo UInt8. Solo se pueden comparar valores dentro del mismo grupo (p. ej., UInt16 y UInt64), pero no entre grupos distintos (p. ej., UInt16 y DateTime). Es posible comparar números y cadenas, así como cadenas con fechas y fechas con horas. En el caso de tuplas y arrays, la comparación es lexicográfica, lo que significa que se compara cada elemento correspondiente de la tupla/array del lado izquierdo con el del lado derecho. Se pueden comparar los siguientes tipos:
  • números y decimales
  • cadenas y cadenas de longitud fija
  • fechas
  • fechas con horas
  • tuplas (comparación lexicográfica)
  • arrays (comparación lexicográfica)
Las cadenas se comparan byte a byte. Esto puede dar lugar a resultados inesperados si una de las cadenas contiene caracteres multibyte codificados en UTF-8. Una cadena S1 que tiene otra cadena S2 como prefijo se considera más larga que S2.

equals

Introducido en: v1.1.0 Compara dos valores para comprobar si son iguales. Sintaxis
equals(a, b)
        -- a = b
        -- a == b
Argumentos
  • a — Primer valor.* - b — Segundo valor.*
Valor devuelto Devuelve 1 si a es igual a b; en caso contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT 1 = 1, 1 = 2;
Response
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

globalIn

Introducido en: v1.1.0 Igual que in, pero utiliza la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Sintaxis
globalIn(x, set)
Argumentos
  • x — El valor que se va a comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x está en el conjunto y 0 en caso contrario. UInt8 Ejemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalInIgnoreSet

Introducido en: v1.1.0 Igual que in, pero usa la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Esta es la variante IgnoreSet que se utiliza para el análisis de tipos sin crear el conjunto. Sintaxis
globalIn(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalNotIn

Introducido en: v1.1.0 Igual que notIn, pero utiliza la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Sintaxis
globalNotIn(x, set)
Argumentos
  • x — El valor que se comprobará. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; de lo contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotInIgnoreSet

Introducido en: v1.1.0 Igual que notIn, pero usa la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Esta es la variante IgnoreSet que se usa para el análisis de tipos sin crear el conjunto. Sintaxis
globalNotIn(x, set)
Argumentos
  • x — El valor que se comprobará. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no pertenece al conjunto, 0 en caso contrario. UInt8 Ejemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotNullIn

Introducido en: v1.1.0 Igual que notNullIn, pero utiliza la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Sintaxis
globalNotNullIn(x, set)
Argumentos
  • x — El valor que se va a comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNotNullInIgnoreSet

Introducido en: v1.1.0 Igual que notNullIn, pero utiliza la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Esta es la variante IgnoreSet que se usa para el análisis de tipos sin crear el conjunto. Sintaxis
globalNotNullIn(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; de lo contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNullIn

Introducido en: v1.1.0 Lo mismo que nullIn, pero usa la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Sintaxis
globalNullIn(x, set)
Argumentos
  • x — El valor que se va a comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

globalNullInIgnoreSet

Introducido en: v1.1.0 Igual que nullIn, pero usa la distribución global de conjuntos en consultas distribuidas. El conjunto se envía a todos los servidores remotos. Se trata de la variante IgnoreSet, utilizada para el análisis de tipos sin crear el conjunto. Sintaxis
globalNullIn(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

greater

Introducido en: v1.1.0 Compara dos valores para determinar si uno es mayor que el otro. Sintaxis
greater(a, b)
    -- a > b
Argumentos
  • a — Primer valor.* - b — Segundo valor.*
Valor devuelto Devuelve 1 si a es mayor que b; de lo contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT 2 > 1, 1 > 2;
Response
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

Introducido en: v1.1.0 Compara dos valores para determinar si uno es mayor o igual que el otro. Sintaxis
greaterOrEquals(a, b)
    -- a >= b
Argumentos
  • a — Primer valor.* - b — Segundo valor.*
Valor devuelto Devuelve 1 si a es mayor o igual que b; de lo contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
Response
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

in

Introducido en: v1.1.0 Comprueba si el operando izquierdo pertenece al conjunto del operando derecho. Devuelve 1 si es así; de lo contrario, 0. Los valores NULL del operando izquierdo se omiten (se tratan como si no pertenecieran al conjunto). Sintaxis
in(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x está en el conjunto; de lo contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

inIgnoreSet

Introducido en: v1.1.0 Comprueba si el operando izquierdo pertenece al conjunto del operando derecho. Devuelve 1 si es así; de lo contrario, 0. Los valores NULL del operando izquierdo se omiten (se tratan como si no pertenecieran al conjunto). Esta es la variante IgnoreSet que se usa para el análisis de tipos sin crear el conjunto. Sintaxis
in(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x pertenece al conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

isDistinctFrom

Introducido en: v25.11.0 Realiza una comparación de “distinto de” con seguridad ante NULL entre dos valores. Devuelve true si los valores son distintos (no iguales), incluso cuando un valor es NULL y el otro no. Devuelve false si los valores son iguales o si ambos son NULL. Sintaxis
isDistinctFrom(x, y)
Argumentos
  • x — Primer valor que se comparará. Puede ser cualquier tipo de dato de ClickHouse. Any
  • y — Segundo valor que se comparará. Puede ser cualquier tipo de dato de ClickHouse. Any
Valor devuelto Devuelve true si los dos valores son diferentes, considerando los NULL como comparables:
  • Devuelve true si x != y.
    • Devuelve true si exactamente uno de x o y es NULL.
    • Devuelve false si x = y o si tanto x como y son NULL. Bool
Ejemplos Uso básico con números y NULL
Query
SELECT
    isDistinctFrom(1, 2) AS result_1,
    isDistinctFrom(1, 1) AS result_2,
    isDistinctFrom(NULL, 1) AS result_3,
    isDistinctFrom(NULL, NULL) AS result_4
Response
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

isNotDistinctFrom

Introducido en: v23.8.0 Realiza una comparación de “igualdad” con seguridad ante NULL entre dos valores. Devuelve true si los valores son iguales, incluso cuando ambos son NULL. Devuelve false si los valores son diferentes o si exactamente uno de ellos es NULL. Sintaxis
isNotDistinctFrom(x, y)
Argumentos
  • x — Primer valor para comparar. Puede ser cualquier tipo de dato de ClickHouse. Any
  • y — Segundo valor para comparar. Puede ser cualquier tipo de dato de ClickHouse. Any
Valor devuelto Devuelve true si los dos valores son iguales, tratando los NULL como comparables:
  • Devuelve true si x = y.
    • Devuelve true si tanto x como y son NULL.
    • Devuelve false si x != y, o si exactamente uno de los dos es NULL. Bool
Ejemplos Uso básico con números y NULL
Query
SELECT
    isNotDistinctFrom(1, 1) AS result_1,
    isNotDistinctFrom(1, 2) AS result_2,
    isNotDistinctFrom(NULL, NULL) AS result_3,
    isNotDistinctFrom(NULL, 1) AS result_4
Response
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

less

Introducido en: v1.1.0 Compara dos valores para determinar si uno es menor que el otro. Sintaxis
less(a, b)
    -- a < b
Argumentos
  • a — Primer valor.* - b — Segundo valor.*
Valor devuelto Devuelve 1 si a es menor que b; en caso contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT 1 < 2, 2 < 1;
Response
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

Introducido en: v1.1.0 Compara dos valores para determinar si uno es menor o igual que el otro. Sintaxis
lessOrEquals(a, b)
-- a <= b
Argumentos
  • a — Primer valor.* - b — Segundo valor.*
Valor devuelto Devuelve 1 si a es menor o igual a b; de lo contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
Response
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

Introducido en: v1.1.0 Compara dos valores para comprobar si son distintos. Sintaxis
notEquals(a, b)
    -- a != b
    -- a <> b
Argumentos
  • a — Primer valor.* - b — Segundo valor.*
Valor devuelto Devuelve 1 si a no es igual a b; en caso contrario, 0. UInt8 Ejemplos Ejemplo de uso
Query
SELECT 1 != 2, 1 != 1;
Response
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘

notIn

Introducido en: v1.1.0 Comprueba si el operando izquierdo NO pertenece al conjunto del operando derecho. Devuelve 1 si no pertenece al conjunto; en caso contrario, 0. Los valores NULL del operando izquierdo se omiten. Sintaxis
notIn(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notInIgnoreSet

Introducido en: v1.1.0 Comprueba si el operando izquierdo NO pertenece al conjunto del operando derecho. Devuelve 1 si no está en el conjunto y 0 en caso contrario. Los valores NULL del operando izquierdo se omiten. Esta es la variante IgnoreSet que se utiliza para el análisis de tipos sin crear el conjunto. Sintaxis
notIn(x, set)
Argumentos
  • x — El valor que se comprobará. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notNullIn

Introducido en: v1.1.0 Comprueba si el operando izquierdo NO pertenece al conjunto del operando derecho. A diferencia de notIn, los valores NULL no se omiten: NULL se compara con los elementos del conjunto, y NULL = NULL se evalúa como true. Sintaxis
notNullIn(x, set)
Argumentos
  • x — El valor que se va a comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

notNullInIgnoreSet

Introducido en: v1.1.0 Comprueba si el operando izquierdo NO pertenece al conjunto del operando derecho. A diferencia de notIn, los valores NULL no se omiten: NULL se compara con los elementos del conjunto, y NULL = NULL se evalúa como true. Esta es la variante IgnoreSet que se utiliza para el análisis de tipos sin crear el conjunto. Sintaxis
notNullIn(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x no está en el conjunto; 0 en caso contrario. UInt8 Ejemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

nullIn

Introducido en: v1.1.0 Comprueba si el operando izquierdo pertenece al conjunto del operando derecho. A diferencia de in, los valores NULL no se omiten: NULL se compara con los elementos del conjunto, y NULL = NULL se evalúa como true. Sintaxis
nullIn(x, set)
Argumentos
  • x — El valor que se comprueba. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x pertenece al conjunto; de lo contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

nullInIgnoreSet

Introducido en: v1.1.0 Comprueba si el operando izquierdo pertenece al conjunto del operando derecho. A diferencia de in, los valores NULL no se omiten: NULL se compara con los elementos del conjunto, y NULL = NULL se evalúa como true. Esta es la variante IgnoreSet utilizada para el análisis de tipos sin crear el conjunto. Sintaxis
nullIn(x, set)
Argumentos
  • x — El valor que se debe comprobar. - set — El conjunto de valores.
Valor devuelto Devuelve 1 si x está en el conjunto; en caso contrario, 0. UInt8 Ejemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1
Última modificación el 10 de junio de 2026