我有以下SQL語句:「使用NOT否定表達」SQL和NOT和和等價
AND NOT (wo.ci_cnc_date IS NOT NULL AND p.prioid != '1 - Routine')
的MSDN聲明
,如果這是真的話,那麼將上面的語句是等價的:
AND (wo.ci_cnc_date IS NULL AND p.prioid == '1 - Routine')
我有以下SQL語句:「使用NOT否定表達」SQL和NOT和和等價
AND NOT (wo.ci_cnc_date IS NOT NULL AND p.prioid != '1 - Routine')
的MSDN聲明
,如果這是真的話,那麼將上面的語句是等價的:
AND (wo.ci_cnc_date IS NULL AND p.prioid == '1 - Routine')
號這將相當於:
AND (wo.ci_cnc_date IS NULL OR p.prioid == '1 - Routine')
@ Gordon Linoff:是的,你說得對。自今早以來,我一直在翻譯SQL語句,並且我認爲我的大腦已經變成了一種可能:)謝謝你的幫助。 –
這將相當於:
AND (NOT wo.ci_cnc_date IS NOT NULL OR p.prioid = '1 - Routine')
注意x IS NOT NULL
和x IS NULL
是,一般來說,不同的運營商來說,一個不被對方的否定。
在PostgreSQL
,既(1, NULL) IS NULL
和(1, NULL) IS NOT NULL
產量FALSE
(見fiddle)
有趣。有點類似於A = B' /'A <> B'的三元邏輯,其中任何一方都可以是NULL(只有在這種情況下,結果不是NULL/UNKNOWN,但由於某種原因FALSE)。 –
@AndriyM:'IS NULL'和'IS NOT NULL'都不返回NULL。關鍵是'不是空'和'不是空'是不同的東西。 – Quassnoi
SQL平等運算符是'='不''== @ –
a_horse_with_no_name:是的,你是對的。謝謝。 –