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

singleValueOrNull

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

Синтаксис

singleValueOrNull(x)

Параметры

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

  • Уникальное значение, если в x есть ровно одно уникальное значение, отличное от NULL.
  • 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)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘