跳到主要内容
跳到主要内容

singleValueOrNull

聚合函数 singleValueOrNull 用于实现子查询运算符,例如 x = ALL (SELECT ...)。它会检查数据中是否恰好只有一个唯一且非 NULL 的值。 如果只有一个唯一值,则返回该值。如果没有任何值,或者存在至少两个不同的值,则返回 NULL。

语法

singleValueOrNull(x)

参数

返回值

  • 当且仅当 x 中存在唯一一个非 NULL 值时,返回该唯一值。
  • 当有零个或至少两个不同的值时,返回 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)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘