1
PostgreSQL 8.4
在sql中檢查不爲空?
我有以下的一段SQL腳本的:
WHERE p.partner_id IS NOT NULL
AND (let.external_transaction_registration_date IS NULL OR
let.external_transaction_registration_date > :date)
它是正確的方法來檢查或者不空,或者爲空則是沒有constratints應適用?即使E1
爲真,postgresql是否會在(E1 OR E2)
中評估一個排除E2
?
在這種特殊情況下,爲什麼測試E2有任何用處?如果E1成功,那麼該值顯然爲空,並且不可能等於/大於/小於其他任何值,包括其自身 –
@MarcB也許,但我只想知道postgresql如何評估'(E1或E2 )'。如果E1是真的,它會評估E2嗎? –
@MarcB:你看到'OR'了嗎?如果那些與'AND'結合使用'x是null或x> something'的條件確實有意義,那麼您的評論就有意義了。 –