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

singleValueOrNull

Добавленный в: v21.9.0 Агрегатная функция singleValueOrNull используется для реализации операторов с подзапросами, таких как x = ALL (SELECT ...). Она проверяет, есть ли в данных только одно уникальное значение, отличное от NULL. Если есть только одно уникальное значение, она возвращает его. Если значений нет либо есть как минимум два различных значения, она возвращает NULL. Синтаксис
singleValueOrNull(x)
Аргументы
  • x — столбец любого типа данных, кроме Map, Array или Tuple, который не может иметь тип Nullable. Any
Возвращаемое значение Возвращает значение, если в x есть только одно отличное от NULL уникальное значение. Возвращает NULL, если уникальных значений нет или есть как минимум два различных значения. Any или NULL Примеры Одно уникальное значение
Query
CREATE TABLE test (x UInt8 NULL) ENGINE=Log;
INSERT INTO test (x) VALUES (NULL), (NULL), (5), (NULL), (NULL);
SELECT singleValueOrNull(x) FROM test;
Response
┌─singleValueOrNull(x)─┐
│                    5 │
└──────────────────────┘
Несколько разных значений
Query
INSERT INTO test (x) VALUES (10);
SELECT singleValueOrNull(x) FROM test;
Response
┌─singleValueOrNull(x)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘
Последнее изменение 10 июня 2026 г.