跳转到主要内容

singleValueOrNull

首次引入版本:v21.9.0 聚合函数 singleValueOrNull 用于实现子查询运算符,例如 x = ALL (SELECT ...)。它会检查数据中是否仅存在一个唯一的非 NULL 值。 如果只有一个唯一值,则返回该值;如果没有值,或至少有两个不同的值,则返回 NULL。 语法
singleValueOrNull(x)
参数
  • x — 任意数据类型的列,但不能是 MapArrayTuple,且其类型不能为 NullableAny
返回值 如果 x 中只有一个非 NULL 的唯一值,则返回该值。如果没有值,或存在至少两个不同的值,则返回 NULLAnyNULL 示例 单个唯一值
Query
CREATE TABLE test (x UInt8 NULL) ENGINE=Log;
INSERT INTO test (x) VALUES (NULL), (NULL), (5), (NULL), (NULL);
SELECT singleValueOrNull(x) FROM test;
Response
┌─singleValueOrNull(x)─┐
│                    5 │
└──────────────────────┘
多个不同值
Query
INSERT INTO test (x) VALUES (10);
SELECT singleValueOrNull(x) FROM test;
Response
┌─singleValueOrNull(x)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘
最后修改于 2026年6月10日