Arthur Putnam Asked: 2020-09-08 22:17:27 +0800 CST2020-09-08 22:17:27 +0800 CST 2020-09-08 22:17:27 +0800 CST 条件和谓词有什么区别 772 在 SQL 和关系数据库管理系统的上下文中,我很难找到“条件”和“谓词”之间的实际区别。他们的意思是一样的吗? 例如,WHERE 子句是条件语句还是谓词?或两者? terminology 2 个回答 Voted Best Answer mustaccio 2020-09-09T07:45:59+08:002020-09-09T07:45:59+08:00 谓词是具有布尔(真/假)值的东西。WHERE子句包含谓词,简单的或复合的。 条件[语句或表达式],例如if <predicate> then ...or ,也必然包含case when <predicate> then ...谓词。反过来,条件表达式本身也可以是谓词的一部分,就像在这个可以说是人为的例子中一样: ...WHERE CASE WHEN DAYOFWEEK(NOW()) < 5 THEN 'weekday' ELSE 'weekend' END = some_column ... nbk 2020-09-09T02:01:04+08:002020-09-09T02:01:04+08:00 这是个好问题。 根据定义,您可以排除或不排除它们。 在我看来: WHERE 子句是有条件的,因为它最后根据条件决定选择哪些行。 对于谓词,结果只能是 True 或 False,WHERE 子句不能返回此结果。 我认为您需要谓词来确定一行是否在结果集中,但是作为总的 WHERE 子句不会返回 True 或 False
谓词是具有布尔(真/假)值的东西。
WHERE
子句包含谓词,简单的或复合的。条件[语句或表达式],例如
if <predicate> then ...
or ,也必然包含case when <predicate> then ...
谓词。反过来,条件表达式本身也可以是谓词的一部分,就像在这个可以说是人为的例子中一样:这是个好问题。
根据定义,您可以排除或不排除它们。
在我看来:
WHERE 子句是有条件的,因为它最后根据条件决定选择哪些行。
对于谓词,结果只能是 True 或 False,WHERE 子句不能返回此结果。
我认为您需要谓词来确定一行是否在结果集中,但是作为总的 WHERE 子句不会返回 True 或 False