Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

singleValueOrNull

singleValueOrNull

Добавленный в: v21.9.0

Агрегатная функция singleValueOrNull используется для реализации операторов с подзапросами, таких как x = ALL (SELECT ...). Она проверяет, есть ли в данных только одно уникальное значение, отличное от NULL. Если есть только одно уникальное значение, она возвращает его. Если значений нет либо есть как минимум два различных значения, она возвращает NULL.

Синтаксис

singleValueOrNull(x)

Аргументы

  • x — столбец любого типа данных, кроме Map, Array или Tuple, который не может иметь тип Nullable. Any

Возвращаемое значение

Возвращает значение, если в x есть только одно отличное от NULL уникальное значение. Возвращает NULL, если уникальных значений нет или есть как минимум два различных значения. Any или NULL

Примеры

Одно уникальное значение

CREATE TABLE test (x UInt8 NULL) ENGINE=Log;
INSERT INTO test (x) VALUES (NULL), (NULL), (5), (NULL), (NULL);
SELECT singleValueOrNull(x) FROM test;
┌─singleValueOrNull(x)─┐
│                    5 │
└──────────────────────┘

Несколько разных значений

INSERT INTO test (x) VALUES (10);
SELECT singleValueOrNull(x) FROM test;
┌─singleValueOrNull(x)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘
Navigation