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

WHERE 子句

WHERE 子句允许过滤从 SELECTFROM 子句中得到的数据。

如果存在 WHERE 子句,则必须包含一个 UInt8 类型的表达式。这个表达式通常是带有比较和逻辑运算符的表达式。该表达式计算结果为 0 的行将被排除在进一步的转换或结果之外。

WHERE 表达式的评价依赖于是否能够使用索引和分区裁剪,如果底层表引擎支持这些功能。

备注

有一种过滤优化称为 PREWHERE

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

示例

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

结果:

带有 NULL 值的查询:

结果: