> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

# singleValueOrNull

<div id="singleValueOrNull">
  ## singleValueOrNull
</div>

Добавленный в: v21.9.0

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

**Синтаксис**

```sql theme={null}
singleValueOrNull(x)
```

**Аргументы**

* `x` — столбец любого типа данных, кроме Map, Array или Tuple, который не может иметь тип Nullable. [`Any`](/ru/reference/data-types/index)

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

Возвращает значение, если в `x` есть только одно отличное от `NULL` уникальное значение. Возвращает `NULL`, если уникальных значений нет или есть как минимум два различных значения. [`Any`](/ru/reference/data-types/index) или [`NULL`](/ru/reference/syntax#null)

**Примеры**

**Одно уникальное значение**

```sql title=Query theme={null}
CREATE TABLE test (x UInt8 NULL) ENGINE=Log;
INSERT INTO test (x) VALUES (NULL), (NULL), (5), (NULL), (NULL);
SELECT singleValueOrNull(x) FROM test;
```

```response title=Response theme={null}
┌─singleValueOrNull(x)─┐
│                    5 │
└──────────────────────┘
```

**Несколько разных значений**

```sql title=Query theme={null}
INSERT INTO test (x) VALUES (10);
SELECT singleValueOrNull(x) FROM test;
```

```response title=Response theme={null}
┌─singleValueOrNull(x)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘
```
