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

singleValueOrNull

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

構文

singleValueOrNull(x)

パラメーター

戻り値

  • x の中に一意な非 NULL 値がちょうど 1 つだけ存在する場合、その一意な値。
  • 0 個、または 2 個以上の異なる値が存在する場合は NULL

クエリ:

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