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

> 集約関数 `singleValueOrNull` は、`x = ALL (SELECT ...)` のようなサブクエリ演算子を実装するために使用されます。データ内に 非 NULL ではない一意の値が 1 つだけ存在するかどうかを確認します。

# singleValueOrNull

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

導入バージョン: v21.9.0

集約関数 `singleValueOrNull` は、`x = ALL (SELECT ...)` のようなサブクエリ演算子を実装するために使用されます。データ内に一意な非 NULL 値が 1 つだけ存在するかどうかを確認します。
一意な値が 1 つだけ存在する場合は、その値を返します。値が存在しないか、異なる値が 2 つ以上存在する場合は、NULL を返します。

**構文**

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

**引数**

* `x` — Nullable 型にできない、Map、Array、Tuple を除く任意のデータ型のカラム。[`Any`](/ja/reference/data-types)

**戻り値**

`x` に一意な非 NULL 値が 1 つだけある場合は、その値を返します。異なる値が存在しない場合、または 2 つ以上ある場合は `NULL` を返します。[`Any`](/ja/reference/data-types) または [`NULL`](/ja/reference/syntax#null)

**例**

**一意な値が 1 つだけの場合**

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