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

singleValueOrNull

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

Синтаксис

singleValueOrNull(x)

Параметры

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

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