我們寫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 ...