メインコンテンツへスキップ
メインコンテンツへスキップ

singleValueOrNull

singleValueOrNull

導入バージョン: v21.9

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

構文

singleValueOrNull(x)

引数

  • x — Nullable 型にできない Map、Array、Tuple を除く任意のデータ型のカラム。Any

返される値

x の中に一意の非 NULL 値が 1 つだけ存在する場合、その一意の値を返します。非 NULL の異なる値が 0 個、または 2 個以上存在する場合は NULL を返します。Any または NULL

使用例

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

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