SQL 復合查詢條件(AND,OR,NOT)對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 |
當兩個以上的查詢條件與AND、OR、NOT組合時,NOT的優(yōu)先級最高,其次是AND,最后是OR。為了避免歧義和確??梢浦残宰詈檬褂美ㄌ?。
A BETWEEN B AND C 等價于 (A>=B) AND (A<=C),因此根據(jù)真值表可以得出BETWEEN 子句中處理NULL值的規(guī)則。
同樣,A IN(B,C,D) 等價于 (A=B)OR(A=C)OR(A=D), 根據(jù)真值表,只要這三個表達式中有一個為NULL,結(jié)果返回肯定是NULL。
因此,BETWEEN子句和IN子句并不增加SQL語句的表達能力。
SQL 中有NULL 值測試,即:字段 IS (NOT) NULL ,但它的返回結(jié)果只有兩種情況:TRUE或者FALSE。
- SQL語句查詢是否為空 =null及null
- 用sql命令修改數(shù)據(jù)表中的一個字段為非空(not null)的語句
- sqlserver對字段出現(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ù)庫是否存在,不存在是自動創(chuàng)建數(shù)據(jù)庫。2011-10-10
SQL Server查詢數(shù)據(jù)庫中表使用空間信息實現(xiàn)腳本
這篇文章主要介紹了SQL Server查詢數(shù)據(jù)庫中表使用空間信息實現(xiàn)腳本,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-07-07
sqlserver數(shù)據(jù)庫遷移后,孤立賬號解決辦法
sqlserver數(shù)據(jù)庫遷移后,孤立賬號解決辦法,需要的朋友可以參考下。2011-10-10
SQL Server本地時間和UTC時間的相互轉(zhuǎn)換實現(xiàn)代碼
SQL Server 本地時間和UTC時間的相互轉(zhuǎn)換的代碼,需要的朋友可以參考下。2011-07-07
SQL?Server?2022新功能之如何將數(shù)據(jù)庫備份到S3兼容的對象存儲
本文介紹了如何使用SQL Server 2022將數(shù)據(jù)庫備份到S3兼容的對象存儲,主要功能包括配置S3連接器、創(chuàng)建憑據(jù)、使用URL進行備份和恢復,并支持加密和壓縮選項,此外,還討論了在Linux平臺上的特殊配置要求和區(qū)域參數(shù)的使用,感興趣的朋友一起看看吧2025-02-02

