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

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)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘