Terminology
條件和謂詞有什麼區別
在 SQL 和關係數據庫管理系統的上下文中,我很難找到“條件”和“謂詞”之間的實際區別。他們的意思是一樣的嗎?
例如,WHERE 子句是條件語句還是謂詞?或兩者?
謂詞是具有布爾(真/假)值的東西。
WHERE
子句包含謂詞,簡單的或複合的。有條件的
$$ statement or expression $$,例如
if <predicate> then ...
orcase when <predicate> then ...
,也必然包含謂詞。反過來,條件表達式本身也可以是謂詞的一部分,就像在這個可以說是人為的例子中一樣:...WHERE CASE WHEN DAYOFWEEK(NOW()) < 5 THEN 'weekday' ELSE 'weekend' END = some_column ...
這是個好問題。
根據定義,您可以排除或不排除它們。
在我看來:
WHERE 子句是有條件的,因為它最後根據條件決定選擇哪些行。
對於謂詞,結果只能是 True 或 False,WHERE 子句不能返回此結果。
我認為您需要謂詞來確定一行是否在結果集中,但是作為總的 WHERE 子句不會返回 True 或 False