注意細節 SQL語句中的布林表示式

2022-02-01 11:04:28 字數 781 閱讀 4507

我們寫sql語句有時希望sql表示式能夠返回true或者false,卻常常忽略了第三個值unknown。由於不注意判斷返回的值有時會導致錯誤的結果,unknown與true和false做and、or運算返回的結果有一些差異,來看乙個小小的測試:

1.and操作

and true

false

unktrue

false

unk

2.or操作

or true

false

unktrue

false

unk

如果你已經有了答案,不妨跟微軟工程師們給出的答案對照一下吧:

and true

false

unktrue

true   

false

unkfalse

false

false

false

unk unk

false

unkor true

false

unktrue

true

true

true

false

true

false

unkunk true

unkunk

參見:microsoft sql isv program management team

Sql語句中的DDL語句

資料庫模式定義語言ddl data definition language 是用於描述資料庫中要儲存的現實世界實體的語言。主要由create 新增 alter 修改 drop 刪除 和 truncate 刪除 四個關鍵字完成。create database 資料庫名 建立乙個資料庫 create d...

sql語句中的count

不考慮null的情況,如果null參與聚集運算,則除count 之外其它聚集函式都忽略null.count 1 和count 主鍵 這兩個只掃瞄主鍵index就可以得到資料,count 是掃瞄表的。所以count 1 和count 主鍵 這兩個效率高。還有一種寫法是count rowid 這也是只掃...

sql語句中as的用法

as 一般用在兩個地方,乙個是query的時候,用來重新指定返回的column 名字 如 乙個table 有個column叫 id,我們的query是 select id from table1.但是如果你不想叫id了,就可以重新命名,如叫 systemid 就可以這樣寫 select id as ...