Перейти к основному содержанию

assumeNotNull

Добавленный в: v1.1.0 Возвращает соответствующее значение без Nullable для значения типа Nullable. Если исходное значение — NULL, может быть возвращён произвольный результат. См. также: функции ifNull и coalesce. Синтаксис
assumeNotNull(x)
Аргументы
  • x — Исходное значение любого типа Nullable. Nullable(T)
Возвращаемое значение Возвращает значение типа без Nullable, если исходное значение не равно NULL; в противном случае, если входное значение равно NULL, возвращается произвольное значение. Any Примеры Пример использования
Query
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 table;
SELECT toTypeName(assumeNotNull(y)) FROM t_null;
Response
┌─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 Примеры Пример использования
Query
-- Рассмотрим список контактов, в котором может быть указано несколько способов связи с клиентом.

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);

-- Поля mail и phone имеют тип String, а поле telegram — UInt32, поэтому его необходимо преобразовать в String.

-- Получить первый доступный способ связи с клиентом из списка контактов

SELECT name, coalesce(mail, phone, CAST(telegram,'Nullable(String)')) FROM aBook;
Response
┌─name─────┬─coalesce(mail, phone, CAST(telegram, 'Nullable(String)'))─┐
│ client 1 │ 123-45-67                                                 │
│ client 2 │ ᴺᵁᴸᴸ                                                      │
└──────────┴───────────────────────────────────────────────────────────┘

firstNonDefault

Добавленный в: v25.9.0 Возвращает первое значение, отличное от значения по умолчанию, из набора аргументов Синтаксис
firstNonDefault(arg1[, arg2[ ...]])
Аргументы
  • arg1 — Первый аргумент для проверки - arg2 — Второй аргумент для проверки - ... — Дополнительные аргументы для проверки
Возвращаемое значение Тип результата — супертип всех аргументов Примеры целые числа
Query
SELECT firstNonDefault(0, 1, 2)
Response
1
строки
Query
SELECT firstNonDefault('', 'hello', 'world')
Response
'hello'
NULL-значения
Query
SELECT firstNonDefault(NULL, 0 :: UInt8, 1 :: UInt8)
Response
1
нулевое значение типа Nullable
Query
SELECT firstNonDefault(NULL, 0 :: Nullable(UInt8), 1 :: Nullable(UInt8))
Response
0

ifNull

Добавленный в: v1.1.0 Возвращает альтернативное значение, если первый аргумент равен NULL. Синтаксис
ifNull(x, alt)
Аргументы
  • x — Значение, проверяемое на NULL. Any
  • alt — Значение, которое функция возвращает, если x равно NULL. Any
Возвращаемое значение Возвращает значение x, если оно не равно NULL, иначе — alt. Any Примеры Пример использования
Query
SELECT ifNull('a', 'b'), ifNull(NULL, 'b');
Response
┌─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 Примеры Пример использования
Query
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);
Response
┌─x─┐
│ 2 │
└───┘

isNull

Добавленный в: v1.1.0 Проверяет, имеет ли аргумент значение NULL. См. также: оператор IS NULL. Синтаксис
isNull(x)
Аргументы
  • x — значение не составного типа данных. Any
Возвращаемое значение Возвращает 1, если x имеет значение NULL, в противном случае — 0. UInt8 Примеры Пример использования
Query
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);
Response
┌─x─┐
│ 1 │
└───┘

isNullable

Добавленный в: v22.7.0 Проверяет, имеет ли аргумент тип данных Nullable (то есть допускает значения NULL). Синтаксис
isNullable(x)
Аргументы
  • x — значение любого типа данных. Any
Возвращаемое значение Возвращает 1, если x имеет тип Nullable, в противном случае — 0. UInt8 Примеры Пример использования
Query
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;
Response
┌───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 Примеры Пример использования
Query
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);
Response
┌─x─┐
│ 1 │
│ 2 │
└───┘

nullIf

Добавленный в: v1.1.0 Возвращает NULL, если оба аргумента равны. Синтаксис
nullIf(x, y)
Аргументы
  • x — Первое значение. Any
  • y — Второе значение. Any
Возвращаемое значение Возвращает NULL, если оба аргумента равны, иначе возвращает первый аргумент. NULL или Nullable(x) Примеры Пример использования
Query
SELECT nullIf(1, 1), nullIf(1, 2);
Response
┌─nullIf(1, 1)─┬─nullIf(1, 2)─┐
│         ᴺᵁᴸᴸ │            1 │
└──────────────┴──────────────┘

toNullable

Добавленный в: v1.1.0 Преобразует тип переданного аргумента в Nullable. Синтаксис
toNullable(x)
Аргументы
  • x — значение любого нескалярного типа. Any
Возвращаемое значение Возвращает входное значение, но с типом Nullable. Nullable(Any) Примеры Пример использования
Query
SELECT toTypeName(10), toTypeName(toNullable(10));
Response
┌─toTypeName(10)─┬─toTypeName(toNullable(10))─┐
│ UInt8          │ Nullable(UInt8)            │
└────────────────┴────────────────────────────┘
Последнее изменение 10 июня 2026 г.