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

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