SQL 復(fù)合查詢條件(AND,OR,NOT)對(duì)NULL值的處理方法
以下是SQL中AND,OR,NOT的真值表。
表1 AND的真值表
|
TRUE |
FALSE |
NULL | |
|
TRUE |
TRUE |
FALSE |
NULL |
|
FALSE |
FALSE |
FALSE |
FALSE |
|
NULL |
NULL |
FALSE |
NULL |
|
TRUE |
FALSE |
NULL | |
|
TRUE |
TRUE |
TRUE |
TRUE |
|
FALSE |
TRUE |
FALSE |
NULL |
|
NULL |
TRUE |
NULL |
NULL |
|
TRUE |
FALSE |
NULL |
|
FALSE |
TRUE |
NULL |
當(dāng)兩個(gè)以上的查詢條件與AND、OR、NOT組合時(shí),NOT的優(yōu)先級(jí)最高,其次是AND,最后是OR。為了避免歧義和確保可移植性最好使用括號(hào)。
A BETWEEN B AND C 等價(jià)于 (A>=B) AND (A<=C),因此根據(jù)真值表可以得出BETWEEN 子句中處理NULL值的規(guī)則。
同樣,A IN(B,C,D) 等價(jià)于 (A=B)OR(A=C)OR(A=D), 根據(jù)真值表,只要這三個(gè)表達(dá)式中有一個(gè)為NULL,結(jié)果返回肯定是NULL。
因此,BETWEEN子句和IN子句并不增加SQL語句的表達(dá)能力。
SQL 中有NULL 值測(cè)試,即:字段 IS (NOT) NULL ,但它的返回結(jié)果只有兩種情況:TRUE或者FALSE。
- SQL語句查詢是否為空 =null及null
- 用sql命令修改數(shù)據(jù)表中的一個(gè)字段為非空(not null)的語句
- sqlserver對(duì)字段出現(xiàn)NULL值的處理
- mysql中將null值轉(zhuǎn)換為0的語句
- mysql中is null語句的用法分享
- mysql not in、left join、IS NULL、NOT EXISTS 效率問題記錄
- mysql中IFNULL,IF,CASE的區(qū)別介紹
- sqlserver 不能將值NULL插入列id(列不允許有空值解決)
- SQLSERVER ISNULL 函數(shù)與判斷值是否為空的sql語句
- sql server 關(guān)于設(shè)置null的一些建議
相關(guān)文章
在數(shù)據(jù)庫‘master’中拒絕CREATE DATABASE權(quán)限問題的解決方法
今天使用Linq To SQL,要求判斷數(shù)據(jù)庫是否存在,不存在是自動(dòng)創(chuàng)建數(shù)據(jù)庫。2011-10-10
SQL Server查詢數(shù)據(jù)庫中表使用空間信息實(shí)現(xiàn)腳本
這篇文章主要介紹了SQL Server查詢數(shù)據(jù)庫中表使用空間信息實(shí)現(xiàn)腳本,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-07-07
sqlserver數(shù)據(jù)庫遷移后,孤立賬號(hào)解決辦法
sqlserver數(shù)據(jù)庫遷移后,孤立賬號(hào)解決辦法,需要的朋友可以參考下。2011-10-10
SQL Server本地時(shí)間和UTC時(shí)間的相互轉(zhuǎn)換實(shí)現(xiàn)代碼
SQL Server 本地時(shí)間和UTC時(shí)間的相互轉(zhuǎn)換的代碼,需要的朋友可以參考下。2011-07-07
SQL?Server?2022新功能之如何將數(shù)據(jù)庫備份到S3兼容的對(duì)象存儲(chǔ)
本文介紹了如何使用SQL Server 2022將數(shù)據(jù)庫備份到S3兼容的對(duì)象存儲(chǔ),主要功能包括配置S3連接器、創(chuàng)建憑據(jù)、使用URL進(jìn)行備份和恢復(fù),并支持加密和壓縮選項(xiàng),此外,還討論了在Linux平臺(tái)上的特殊配置要求和區(qū)域參數(shù)的使用,感興趣的朋友一起看看吧2025-02-02

