當sql語句中 遇到null發生的故事

2021-07-10 02:35:20 字數 648 閱讀 3741

今天測試過程發現個問題,sql語句中!=不起作用,原sql語句如下(執行結果是0列):

select * from company_member_rel 

where companyid=111552 and active !='n'

資料庫中,表company_member_rel部分資料如下:

如果companyid=111573則正常;

後來去研究下sql中的null,原來在sql中null是表示未知的型別,我們用常規的比較操作符去操作乙個未知的東西是沒有任何意義的,所以,sql返回的是0個結果,即使null=null在sql中也是沒有意義的,判斷「未知」=「未知」是否成立,這顯然沒有意義,兩個未知的東東怎麼比較呢。

所以上述問題想要有結果,可以將sql語句寫成如下:

select * from company_member_rel 

where companyid=111552 and (active !='n' or active is null)

SQL語句中null的應用。

首先推薦一下深入詳解sql中的null 這篇文章寫得比較全面了。這裡我說一下我遇到的問題。在設計乙個儲存過程時,我們經常把乙個變數查詢出來之後,放入乙個變數中。標準做法是,先select 資料賦值給變數。然後再判斷變數是否為空。如果事情到這裡,沒有問題了。當時為了偷懶直接使用了一些函式來處理null...

SQL語句中使用變數作為條件。遇到NULL時怎麼寫

sql語句中使用變數作為條件。遇到null時怎麼寫。2012 10 04 14 23 提問者 jo fly 瀏覽次數 108次 sql server declare name varchar 16 null select from tablename where name name name 有可能...

sql語句中null和空字元的區別

例子 value nullif x,y value是函式 1 null 代表宣告了乙個空物件,而不僅僅是乙個字串,值可以賦給任何物件。空字元 代表宣告了乙個物件例項,這個物件例項的值是乙個長度為0的空字串。2 string s null 只是定義了乙個控制代碼,即你有了個引用,但是這個引用未指向任何...