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)
equals
Introducido en: v1.1.0
Compara dos valores para comprobar si son iguales.
Sintaxis
equals(a, b)
-- a = b
-- a == bArgumentos
Valor devuelto
Devuelve 1 si a es igual a b; en caso contrario, 0 UInt8
Ejemplos
Ejemplo de uso
SELECT 1 = 1, 1 = 2;┌─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
SELECT 1 IN (1, 2, 3)1globalInIgnoreSet
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
SELECT 1 IN (1, 2, 3)1globalNotIn
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
SELECT 4 NOT IN (1, 2, 3)1globalNotInIgnoreSet
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
SELECT 4 NOT IN (1, 2, 3)1globalNotNullIn
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
SELECT notNullIn(NULL, tuple(1, NULL))1globalNotNullInIgnoreSet
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
SELECT notNullIn(NULL, tuple(1, NULL))1globalNullIn
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
SELECT nullIn(NULL, tuple(1, NULL))0globalNullInIgnoreSet
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
SELECT nullIn(NULL, tuple(1, NULL))0greater
Introducido en: v1.1.0
Compara dos valores para determinar si uno es mayor que el otro.
Sintaxis
greater(a, b)
-- a > bArgumentos
Valor devuelto
Devuelve 1 si a es mayor que b; de lo contrario, 0 UInt8
Ejemplos
Ejemplo de uso
SELECT 2 > 1, 1 > 2;┌─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 >= bArgumentos
Valor devuelto
Devuelve 1 si a es mayor o igual que b; de lo contrario, 0 UInt8
Ejemplos
Ejemplo de uso
SELECT 2 >= 1, 2 >= 2, 1 >= 2;┌─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
SELECT 1 IN (1, 2, 3)1inIgnoreSet
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
SELECT 1 IN (1, 2, 3)1isDistinctFrom
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.Anyy— 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
truesi x != y.- Devuelve
truesi exactamente uno de x o y es NULL. - Devuelve
falsesi x = y o si tanto x como y son NULL.Bool
- Devuelve
Ejemplos
Uso básico con números y NULL
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┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│ 1 │ 0 │ 1 │ 0 │
└──────────┴──────────┴──────────┴──────────┘isNotDistinctFrom
Introducido en: v23.8.0
Realiza una comparación de "equals" 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.Anyy— 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
truesi x = y.- Devuelve
truesi tanto x como y son NULL. - Devuelve
falsesi x != y, o si exactamente uno de los dos es NULL.Bool
- Devuelve
Ejemplos
Uso básico con números y NULL
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┌─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 < bArgumentos
Valor devuelto
Devuelve 1 si a es menor que b; en caso contrario, 0 UInt8
Ejemplos
Ejemplo de uso
SELECT 1 < 2, 2 < 1;┌─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 <= bArgumentos
Valor devuelto
Devuelve 1 si a es menor o igual a b; de lo contrario, 0 UInt8
Ejemplos
Ejemplo de uso
SELECT 1 <= 2, 2 <= 2, 3 <= 2;┌─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 <> bArgumentos
Valor devuelto
Devuelve 1 si a no es igual a b; en caso contrario, 0. UInt8
Ejemplos
Ejemplo de uso
SELECT 1 != 2, 1 != 1;┌─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
SELECT 4 NOT IN (1, 2, 3)1notInIgnoreSet
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
SELECT 4 NOT IN (1, 2, 3)1notNullIn
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
SELECT notNullIn(NULL, tuple(1, NULL))1notNullInIgnoreSet
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
SELECT notNullIn(NULL, tuple(1, NULL))1nullIn
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
SELECT nullIn(NULL, tuple(1, NULL))0nullInIgnoreSet
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
SELECT nullIn(NULL, tuple(1, NULL))0