assumeNotNull
Добавленный в: v1.1.0
Возвращает соответствующее значение без Nullable для значения типа Nullable.
Если исходное значение — NULL, может быть возвращён произвольный результат.
См. также: функции ifNull и coalesce.
Синтаксис
assumeNotNull(x)Аргументы
x— Исходное значение любого типаNullable.Nullable(T)
Возвращаемое значение
Возвращает значение типа без Nullable, если исходное значение не равно NULL; в противном случае, если входное значение равно NULL, возвращается произвольное значение. Any
Примеры
Пример использования
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
Добавленный в: v1.1.0
Возвращает первый слева аргумент, не равный NULL.
Синтаксис
coalesce(x[, y, ...])Аргументы
x[, y, ...]— Любое количество параметров нескалярного типа. Все параметры должны иметь взаимно совместимые типы данных.Any
Возвращаемое значение
Возвращает первый аргумент, не равный NULL; если все аргументы равны NULL, возвращает NULL. Any или NULL
Примеры
Пример использования
-- 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
Добавленный в: v25.9.0
Возвращает первое значение, отличное от значения по умолчанию, из набора аргументов
Синтаксис
firstNonDefault(arg1[, arg2[ ...]])Аргументы
arg1— Первый аргумент для проверки -arg2— Второй аргумент для проверки -...— Дополнительные аргументы для проверки
Возвращаемое значение
Тип результата — супертип всех аргументов
Примеры
целые числа
SELECT firstNonDefault(0, 1, 2)1строки
SELECT firstNonDefault('', 'hello', 'world')helloNULL-значения
SELECT firstNonDefault(NULL, 0 :: UInt8, 1 :: UInt8)1нулевое значение типа Nullable
SELECT firstNonDefault(NULL, 0 :: Nullable(UInt8), 1 :: Nullable(UInt8))0ifNull
Добавленный в: v1.1.0
Возвращает альтернативное значение, если первый аргумент равен NULL.
Синтаксис
ifNull(x, alt)Аргументы
x— Значение, проверяемое наNULL.Anyalt— Значение, которое функция возвращает, еслиxравноNULL.Any
Возвращаемое значение
Возвращает значение x, если оно не равно NULL, иначе — alt. Any
Примеры
Пример использования
SELECT ifNull('a', 'b'), ifNull(NULL, 'b');┌─ifNull('a', 'b')─┬─ifNull(NULL, 'b')─┐
│ a │ b │
└──────────────────┴───────────────────┘isNotNull
Добавленный в: v1.1.0
Проверяет, что аргумент не имеет значения NULL.
См. также: оператор IS NOT NULL.
Синтаксис
isNotNull(x)Аргументы
x— Значение несоставного типа.Any
Возвращаемое значение
Возвращает 1, если x не равен NULL, в противном случае — 0. UInt8
Примеры
Пример использования
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
Добавленный в: v1.1.0
Проверяет, имеет ли аргумент значение NULL.
См. также: оператор IS NULL.
Синтаксис
isNull(x)Аргументы
x— значение не составного типа данных.Any
Возвращаемое значение
Возвращает 1, если x имеет значение NULL, в противном случае — 0. UInt8
Примеры
Пример использования
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
Добавленный в: v22.7.0
Проверяет, имеет ли аргумент тип данных Nullable (то есть допускает значения NULL).
Синтаксис
isNullable(x)Аргументы
x— значение любого типа данных.Any
Возвращаемое значение
Возвращает 1, если x имеет тип Nullable, в противном случае — 0. UInt8
Примеры
Пример использования
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
Добавленный в: v20.3.0
Проверяет, равен ли аргумент нулю (0) или NULL.
Синтаксис
isZeroOrNull(x)Аргументы
x— числовое значение.UInt
Возвращаемое значение
Возвращает 1, если x равно NULL или нулю, в противном случае — 0. UInt8/16/32/64 или Float32/Float64
Примеры
Пример использования
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
Добавленный в: v1.1.0
Возвращает NULL, если оба аргумента равны.
Синтаксис
nullIf(x, y)Аргументы
Возвращаемое значение
Возвращает NULL, если оба аргумента равны, иначе возвращает первый аргумент. NULL или Nullable(x)
Примеры
Пример использования
SELECT nullIf(1, 1), nullIf(1, 2);┌─nullIf(1, 1)─┬─nullIf(1, 2)─┐
│ ᴺᵁᴸᴸ │ 1 │
└──────────────┴──────────────┘toNullable
Добавленный в: v1.1.0
Преобразует тип переданного аргумента в Nullable.
Синтаксис
toNullable(x)Аргументы
x— значение любого нескалярного типа.Any
Возвращаемое значение
Возвращает входное значение, но с типом Nullable. Nullable(Any)
Примеры
Пример использования
SELECT toTypeName(10), toTypeName(toNullable(10));┌─toTypeName(10)─┬─toTypeName(toNullable(10))─┐
│ UInt8 │ Nullable(UInt8) │
└────────────────┴────────────────────────────┘