assumeNotNull
Introduzido em: v1.1.0
Retorna o valor não Nullable correspondente a um valor do tipo Nullable.
Se o valor original for NULL, um resultado arbitrário poderá ser retornado.
Veja também: as funções ifNull e coalesce.
Sintaxe
assumeNotNull(x)Argumentos
x— O valor original de qualquer tipoNullable.Nullable(T)
Valor retornado
Retorna o valor não anulável se o valor original não for NULL; caso contrário, retorna um valor arbitrário se o valor de entrada for NULL. Any
Exemplos
Exemplo 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
Introduzido em: v1.1.0
Retorna o argumento não NULL mais à esquerda.
Sintaxe
coalesce(x[, y, ...])Argumentos
x[, y, ...]— Qualquer número de parâmetros de tipo não composto. Todos os parâmetros devem ser de tipos de dados compatíveis entre si.Any
Valor retornado
Retorna o primeiro argumento não NULL; caso todos os argumentos sejam NULL, retorna NULL. Any ou NULL
Exemplos
Exemplo 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
Introduzido em: v25.9.0
Retorna o primeiro valor diferente do padrão de um conjunto de argumentos
Sintaxe
firstNonDefault(arg1[, arg2[ ...]])Argumentos
arg1— O primeiro argumento a ser verificado -arg2— O segundo argumento a ser verificado -...— Argumentos adicionais a serem verificados
Valor retornado
O tipo do resultado é o supertipo de todos os argumentos
Exemplos
inteiros
SELECT firstNonDefault(0, 1, 2)1strings
SELECT firstNonDefault('', 'hello', 'world')helloNULLs
SELECT firstNonDefault(NULL, 0 :: UInt8, 1 :: UInt8)1zero Nullable
SELECT firstNonDefault(NULL, 0 :: Nullable(UInt8), 1 :: Nullable(UInt8))0ifNull
Introduzido na versão: v1.1.0
Retorna um valor alternativo se o primeiro argumento for NULL.
Sintaxe
ifNull(x, alt)Argumentos
Valor retornado
Retorna o valor de x se ele não for NULL; caso contrário, alt. Any
Exemplos
Exemplo de uso
SELECT ifNull('a', 'b'), ifNull(NULL, 'b');┌─ifNull('a', 'b')─┬─ifNull(NULL, 'b')─┐
│ a │ b │
└──────────────────┴───────────────────┘isNotNull
Introduzido em: v1.1.0
Verifica se o argumento não é NULL.
Veja também: operador IS NOT NULL.
Sintaxe
isNotNull(x)Argumentos
x— Um valor de um tipo de dado não composto.Any
Valor retornado
Retorna 1 se x não for NULL; caso contrário, 0. UInt8
Exemplos
Exemplo 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
Introduzido em: v1.1.0
Verifica se o argumento é NULL.
Veja também: operador IS NULL.
Sintaxe
isNull(x)Argumentos
x— Um valor de tipo de dado não composto.Any
Valor retornado
Retorna 1 se x for NULL; caso contrário, 0. UInt8
Exemplos
Exemplo 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
Introduzido na versão: v22.7.0
Verifica se o tipo de dado do argumento é Nullable (ou seja, se permite valores NULL).
Sintaxe
isNullable(x)Argumentos
x— Um valor de qualquer tipo de dado.Any
Valor retornado
Retorna 1 se x for do tipo de dado Nullable; caso contrário, 0. UInt8
Exemplos
Exemplo 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
Introduzido na versão: v20.3.0
Verifica se o argumento é igual a zero (0) ou NULL.
Sintaxe
isZeroOrNull(x)Argumentos
x— Um valor numérico.UInt
Valor retornado
Retorna 1 se x for NULL ou igual a zero; caso contrário, 0. UInt8/16/32/64 ou Float32/Float64
Exemplos
Exemplo 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
Introduzido em: v1.1.0
Retorna NULL se os dois argumentos forem iguais.
Sintaxe
nullIf(x, y)Argumentos
Valor retornado
Retorna NULL se ambos os argumentos forem iguais; caso contrário, retorna o primeiro argumento. NULL ou Nullable(x)
Exemplos
Exemplo de uso
SELECT nullIf(1, 1), nullIf(1, 2);┌─nullIf(1, 1)─┬─nullIf(1, 2)─┐
│ ᴺᵁᴸᴸ │ 1 │
└──────────────┴──────────────┘toNullable
Introduzido em: v1.1.0
Converte o tipo do argumento fornecido para Nullable.
Sintaxe
toNullable(x)Argumentos
x— Um valor de qualquer tipo não composto.Any
Valor retornado
Retorna o valor de entrada, mas com o tipo Nullable. Nullable(Any)
Exemplos
Exemplo de uso
SELECT toTypeName(10), toTypeName(toNullable(10));┌─toTypeName(10)─┬─toTypeName(toNullable(10))─┐
│ UInt8 │ Nullable(UInt8) │
└────────────────┴────────────────────────────┘