什么是谓词?
在 SQL 中,谓词是一种条件表达式,其计算结果为 true 或 false,例如 quantity > 0
。在查询中包含谓词可以通过根据该表达式是返回 true 还是 false 来筛选掉不需要的行,从而缩小结果范围。谓词表达式都包含某种比较元素,例如 =
、>
或 <
。
评估后,所得的 true 和 false 值称为**布尔值**,尽管并非所有数据库都支持布尔值作为数据类型。也并非所有数据库都支持相同的谓词列表,尤其是超出数学比较(如 BETWEEN
或 ISNULL
)的谓词,因此请查阅您数据库的文档,以确定哪些谓词适用于您的用例。
空值:不是零,只是不存在
虽然谓词通常计算为两个布尔值之一(例如 true 或 false),但如果被评估的字段完全没有值,则称其为 null
。这并不意味着其值为零,而是该字段中没有值。
如果您的谓词表达式要求 quantity > 0
,那么没有值的行将不会返回 true 或 false,而是返回 null
。
谓词示例
谓词的一个示例是简单 SQL SELECT
查询中 WHERE
后面的条件,如下所示:
SELECT * from orders
WHERE subtotal > 35
在这种情况下,我们的谓词表达式是 subtotal > 35
。Orders
表中的每一行在 Subtotal
字段中都有一个值,对于每一行,此谓词会评估小计是否大于 $35,是 true 还是 false。然后,我们的查询只返回小计大于 $35 的那些行。
在 Metabase 的查询构建器中,您在筛选数据时使用谓词。您还可以在笔记本编辑器中使用自定义表达式编写自己的谓词。在下面的问题中,我们正在筛选示例数据库中的 People
表,只显示 State
字段等于蒙大拿州(即 state = MT
)的记录。
