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

WHERE 子句

WHERE 子句用于过滤来自 SELECTFROM 子句的数据。

如果存在 WHERE 子句,它必须包含一个 UInt8 类型的表达式。这通常是一个包含比较和逻辑运算符的表达式。当该表达式的值为 0 时,这些行将被排除在后续的转换或结果之外。

WHERE 表达式的评估依赖于是否能够使用索引与分区修剪,如果底层表引擎支持这一功能。

备注

有一种称为 PREWHERE 的过滤优化。

如果需要测试一个值是否为 NULL,请使用 IS NULLIS NOT NULL 运算符或 isNullisNotNull 函数。否则包含 NULL 的表达式将永远不会通过。

示例

要查找是 3 的倍数且大于 10 的数字,请在 numbers 表 上执行以下查询:

结果:

带有 NULL 值的查询:

结果: