singleValueOrNull
導入バージョン: v21.9.0
集約関数 singleValueOrNull は、x = ALL (SELECT ...) のようなサブクエリ演算子を実装するために使用されます。データ内に一意な非 NULL 値が 1 つだけ存在するかどうかを確認します。
一意な値が 1 つだけ存在する場合は、その値を返します。値が存在しないか、異なる値が 2 つ以上存在する場合は、NULL を返します。
構文
singleValueOrNull(x)引数
x— Nullable 型にできない、Map、Array、Tuple を除く任意のデータ型のカラム。Any
戻り値
x に一意な非 NULL 値が 1 つだけある場合は、その値を返します。異なる値が存在しない場合、または 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)─┐
│ ᴺᵁᴸᴸ │
└──────────────────────┘