assumeNotNull
Introducida en: v1.1.0
Devuelve el valor correspondiente no Nullable para un valor de tipo Nullable.
Si el valor original es NULL, puede devolverse un resultado arbitrario.
Vea también: las funciones ifNull y coalesce.
Sintaxis
assumeNotNull(x)Argumentos
x— El valor original de cualquier tipo Nullable.Nullable(T)
Valor devuelto
Devuelve el valor no Nullable si el valor original no era NULL; de lo contrario, devuelve un valor arbitrario si el valor de entrada es NULL. Any
Ejemplos
Ejemplo de uso
CREATE TABLE t_null (x Int8, y Nullable(Int8))
ENGINE=MergeTree()
ORDER BY x;
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT assumeNotNull(y) FROM t_null;
SELECT toTypeName(assumeNotNull(y)) FROM t_null;┌─assumeNotNull(y)─┐
│ 0 │
│ 3 │
└──────────────────┘
┌─toTypeName(assumeNotNull(y))─┐
│ Int8 │
│ Int8 │
└──────────────────────────────┘coalesce
Introducido en: v1.1.0
Devuelve el argumento no NULL situado más a la izquierda.
Sintaxis
coalesce(x[, y, ...])Argumentos
x[, y, ...]— Cualquier número de parámetros de tipo no compuesto. Todos los parámetros deben ser de tipos de datos compatibles entre sí.Any
Valor devuelto
Devuelve el primer argumento que no es NULL, o NULL si todos los argumentos son NULL. Any o NULL
Ejemplos
Ejemplo de uso
-- Consider a list of contacts that may specify multiple ways to contact a customer.
CREATE TABLE aBook
(
name String,
mail Nullable(String),
phone Nullable(String),
telegram Nullable(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO aBook VALUES ('client 1', NULL, '123-45-67', 123), ('client 2', NULL, NULL, NULL);
-- The mail and phone fields are of type String, but the telegram field is UInt32 so it needs to be converted to String.
-- Get the first available contact method for the customer from the contact list
SELECT name, coalesce(mail, phone, CAST(telegram,'Nullable(String)')) FROM aBook;┌─name─────┬─coalesce(mail, phone, CAST(telegram, 'Nullable(String)'))─┐
│ client 1 │ 123-45-67 │
│ client 2 │ ᴺᵁᴸᴸ │
└──────────┴───────────────────────────────────────────────────────────┘firstNonDefault
Introducido en: v25.9.0
Devuelve el primer valor distinto del predeterminado de un conjunto de argumentos
Sintaxis
firstNonDefault(arg1[, arg2[ ...]])Argumentos
arg1— El primer argumento que se debe comprobar -arg2— El segundo argumento que se debe comprobar -...— Argumentos adicionales que se deben comprobar
Valor devuelto
El tipo de resultado es el supertipo de todos los argumentos
Ejemplos
enteros
SELECT firstNonDefault(0, 1, 2)1cadenas
SELECT firstNonDefault('', 'hello', 'world')hellovalores NULL
SELECT firstNonDefault(NULL, 0 :: UInt8, 1 :: UInt8)1cero Nullable
SELECT firstNonDefault(NULL, 0 :: Nullable(UInt8), 1 :: Nullable(UInt8))0ifNull
Introducida en: v1.1.0
Devuelve un valor alternativo si el primer argumento es NULL.
Sintaxis
ifNull(x, alt)Argumentos
x— El valor que se va a comprobar para ver si esNULL.Anyalt— El valor que devuelve la función sixesNULL.Any
Valor devuelto
Devuelve el valor de x si no es NULL; de lo contrario, alt. Any
Ejemplos
Ejemplo de uso
SELECT ifNull('a', 'b'), ifNull(NULL, 'b');┌─ifNull('a', 'b')─┬─ifNull(NULL, 'b')─┐
│ a │ b │
└──────────────────┴───────────────────┘isNotNull
Introducido en: v1.1.0
Comprueba si el argumento no es NULL.
Véase también: operador IS NOT NULL.
Sintaxis
isNotNull(x)Argumentos
x— Un valor de un tipo de dato no compuesto.Any
Valor devuelto
Devuelve 1 si x no es NULL; de lo contrario, 0. UInt8
Ejemplos
Ejemplo de uso
CREATE TABLE t_null
(
x Int32,
y Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT x FROM t_null WHERE isNotNull(y);┌─x─┐
│ 2 │
└───┘isNull
Introducido en: v1.1.0
Comprueba si el argumento es NULL.
Véase también: operador IS NULL.
Sintaxis
isNull(x)Argumentos
x— Un valor de un tipo de dato no compuesto.Any
Valor devuelto
Devuelve 1 si x es NULL; en caso contrario, 0. UInt8
Ejemplos
Ejemplo de uso
CREATE TABLE t_null
(
x Int32,
y Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT x FROM t_null WHERE isNull(y);┌─x─┐
│ 1 │
└───┘isNullable
Introducido en: v22.7.0
Comprueba si el tipo de datos del argumento es Nullable (es decir, si permite valores NULL).
Sintaxis
isNullable(x)Argumentos
x— Un valor de cualquier tipo de dato.Any
Valor devuelto
Devuelve 1 si x es del tipo de dato Nullable; de lo contrario, 0. UInt8
Ejemplos
Ejemplo de uso
CREATE TABLE tab (
ordinary_col UInt32,
nullable_col Nullable(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO tab (ordinary_col, nullable_col) VALUES (1,1), (2, 2), (3,3);
SELECT isNullable(ordinary_col), isNullable(nullable_col) FROM tab;┌─isNullable(ordinary_col)─┬─isNullable(nullable_col)─┐
│ 0 │ 1 │
│ 0 │ 1 │
│ 0 │ 1 │
└──────────────────────────┴──────────────────────────┘isZeroOrNull
Introducido en: v20.3.0
Comprueba si el argumento es igual a cero (0) o NULL.
Sintaxis
isZeroOrNull(x)Argumentos
x— Un valor numérico.UInt
Valor devuelto
Devuelve 1 si x es NULL o es igual a cero; en caso contrario, 0. UInt8/16/32/64 o Float32/Float64
Ejemplos
Ejemplo de uso
CREATE TABLE t_null
(
x Int32,
y Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO t_null VALUES (1, NULL), (2, 0), (3, 3);
SELECT x FROM t_null WHERE isZeroOrNull(y);┌─x─┐
│ 1 │
│ 2 │
└───┘nullIf
Introducido en: v1.1.0
Devuelve NULL si ambos argumentos son iguales.
Sintaxis
nullIf(x, y)Argumentos
Valor devuelto
Devuelve NULL si ambos argumentos son iguales; en caso contrario, devuelve el primer argumento. NULL o Nullable(x)
Ejemplos
Ejemplo de uso
SELECT nullIf(1, 1), nullIf(1, 2);┌─nullIf(1, 1)─┬─nullIf(1, 2)─┐
│ ᴺᵁᴸᴸ │ 1 │
└──────────────┴──────────────┘toNullable
Introducido en: v1.1.0
Convierte el tipo del argumento dado en Nullable.
Sintaxis
toNullable(x)Argumentos
x— Un valor de cualquier tipo no compuesto.Any
Valor devuelto
Devuelve el valor de entrada, pero con tipo Nullable. Nullable(Any)
Ejemplos
Ejemplo de uso
SELECT toTypeName(10), toTypeName(toNullable(10));┌─toTypeName(10)─┬─toTypeName(toNullable(10))─┐
│ UInt8 │ Nullable(UInt8) │
└────────────────┴────────────────────────────┘