select COUNT(*) from table t WHERE t.col <> '3'
SELECT COUNT(*) FROM table t WHERE t.col NOT IN
(select t.col from table t WHERE t.col= '3')
以上兩句SQL的執(zhí)行結(jié)果不同, 因?yàn)?<> 在排除3的同時(shí), 將null也排除了,
所以當(dāng)比較字段含null時(shí),第一句將比第二句的結(jié)果少.
當(dāng)然第二句從效率上來(lái)說(shuō)不是一個(gè)好的寫(xiě)法, 這樣寫(xiě)只是為了理解, 在第一句后面, 加上 or t.col is null 應(yīng)該就等效了.