SQL語(yǔ)句中布爾表達(dá)式不可忽視的部分
寫(xiě)SQL語(yǔ)句時(shí),布爾表達(dá)式中的第三個(gè)值UNKNOWN往往被我們所忽視,但是這其實(shí)是很關(guān)鍵的,下文將帶您做一個(gè)測(cè)試,說(shuō)明這個(gè)問(wèn)題。
我們寫(xiě)SQL語(yǔ)句有時(shí),總是希望SQL表達(dá)式能夠返回TRUE或者FALSE,卻常常忽略了第三個(gè)值UNKNOWN。由于不注意判斷返回的值有時(shí)會(huì)導(dǎo)致錯(cuò)誤的結(jié)果, UNKNOWN與TRUE和FALSE做AND、OR運(yùn)算返回的結(jié)果有一些差異。
來(lái)看一個(gè)小小的測(cè)試:
AND
|
TRUE
|
FALSE
|
UNK
|
TRUE
|
|
|
|
FALSE
|
|
|
|
UNK
|
|
|
|
OR
|
TRUE
|
FALSE
|
UNK
|
TRUE
|
|
|
|
FALSE
|
|
|
|
UNK
|
|
|
|
AND
|
TRUE
|
FALSE
|
UNK
|
TRUE
|
TRUE
|
FALSE
|
UNK
|
FALSE
|
FALSE
|
FALSE
|
FALSE
|
UNK
|
UNK
|
FALSE
|
UNK
|
OR
|
TRUE
|
FALSE
|
UNK
|
TRUE
|
TRUE
|
TRUE
|
TRUE
|
FALSE
|
TRUE
|
FALSE
|
UNK
|
UNK
|
TRUE
|
UNK
|
UNK
|
【編輯推薦】
自動(dòng)生成INSERT語(yǔ)句的SQL存儲(chǔ)過(guò)程
通過(guò)執(zhí)行多條SQL語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù)