SQL 3 高階資料過濾 2 空值檢測

2021-05-24 04:34:45 字數 2055 閱讀 9815

沒有新增非空約束列是可以為空值的(也就是null),有時我們需要對空值進行檢測,比如要查詢所有姓名未知的員工資訊。既然null代表空值,有開發人員試圖通過下面的sql語句來實現:

select * from t_employee where fname=null

這個語句是可以執行的,不過執行以後我們看不到任何的執行結果,那個fnumber為"it002"的資料行中fname欄位為空,但是麼有被查詢出來。這是因為在sql語句中對空值的處理有些特別,不能使用普通的等於運算子進行判斷,而要使用is null

關鍵字,使用方法為

「待檢測欄位名is null

比如要查詢所有姓名未知的員工資訊,則執行下面的sql語句:

select * from t_employee where fname is null

+---------+-------+------+---------+

| fnumber | fname | fage | fsalary |

+---------+-------+------+---------+

| it002   | null  |   27 | 2800.00 |

+---------+-------+------+---------+

如果要檢測「欄位不為空」,則要使用is not null

, 使用方法為「待檢測欄位名 is not null」,

比如要查詢所有姓名已知的員工資訊,則執行下面的sql語句:

select * from t_employee where fname is not null

+----------+-------+------+---------+

| fnumber  | fname | fage | fsalary |

+----------+-------+------+---------+

| dev001   | tom   |   25 | 8300.00 |

| dev002   | jerry |   28 | 2300.00 |

| hr001    | jane  |   23 | 4300.00 |

| hr002    | tina  |   25 | 3300.00 |

| it001    | smith |   28 | 5500.00 |

| sales001 | timmy |   25 | 5300.00 |

| sales002 | stone |   35 | 8300.00 |

+----------+-------+------+---------+

"is null/is not null"可以和其他的過濾條件一起使用。

比如要查詢所有姓名已知切月工資小於5000元的員工資訊,則執行下面的sql語句:

select * from t_employee where fname is not null and fsalary < 5000

+---------+-------+------+---------+

| fnumber | fname | fage | fsalary |

+---------+-------+------+---------+

| dev002  | jerry |   28 | 2300.00 |

| hr001   | jane  |   23 | 4300.00 |

| hr002   | tina  |   25 | 3300.00 |

+---------+-------+------+---------+

SQL 3 高階資料過濾 4 多值檢測

例1 公司要為年齡為23歲 25歲和28歲的員工發福利,請將他們的年齡 工號和姓名檢索出來 要完成這樣的功能,我們可以使用or語句來連線多個等於判斷。sql語句如下 select fage,fnumber,fname from t employee where fage 23 or fage 25 ...

SQL 3 高階資料過濾 1 萬用字元過濾

到目前為止,我們講解的資料方式都是針對特定值的過濾,比如 檢索所有年齡為25的所有員工資訊 檢索所有工資助2500元 3800元之間的所有記錄 但是這種過濾方式並不能滿足一些模糊的過濾方式。比如檢索所有姓名中含有 th 員工或者檢索所有姓 王 的員工,實現這樣的檢索操作必須使用萬用字元進行過濾。sq...

SQL學習之高階資料過濾

一 高階資料過濾之in操作符 in 操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。in取一組由逗號分隔 括在圓括號中的合法值。如下 select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t check ...