Terminology

條件和謂詞有什麼區別

  • July 28, 2021

在 SQL 和關係數據庫管理系統的上下文中,我很難找到“條件”和“謂詞”之間的實際區別。他們的意思是一樣的嗎?

例如,WHERE 子句是條件語句還是謂詞?或兩者?

謂詞是具有布爾(真/假)值的東西。WHERE子句包含謂詞,簡單的或複合的。

有條件

$$ statement or expression $$,例如if <predicate> then ...or case when <predicate> then ...,也必然包含謂詞。反過來,條件表達式本身也可以是謂詞的一部分,就像在這個可以說是人為的例子中一樣:

...WHERE CASE WHEN DAYOFWEEK(NOW()) < 5 THEN 'weekday' ELSE 'weekend' END = some_column ...

這是個好問題。

根據定義,您可以排除或不排除它們。

在我看來:

WHERE 子句是有條件的,因為它最後根據條件決定選擇哪些行。

對於謂詞,結果只能是 True 或 False,WHERE 子句不能返回此結果。

我認為您需要謂詞來確定一行是否在結果集中,但是作為總的 WHERE 子句不會返回 True 或 False

引用自:https://dba.stackexchange.com/questions/275129