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

2021-05-24 04:35:47 字數 1244 閱讀 1247

例1:「公司要為年齡為23歲、25歲和28歲的員工發福利,請將他們的年齡、工號和姓名檢索出來」,

要完成這樣的功能,我們可以使用or語句來連線多個等於判斷。sql語句如下:

select fage, fnumber, fname from t_employee where fage=23 or fage=25 or fage=28

不過,如果要求我們「檢索年齡為21歲、22歲、25歲、28歲、30歲、33歲、35歲、38歲、46歲的員工資訊」 那麼我們就用or連線9個等於判斷,sql語句如下:

select * from t_employee where fage = 21 or fage = 22 or fage =25 or fage = 28 or fage = 30 or fage = 33 or fage = 35 or fage = 38 or fage = 46

這不僅寫起來非常麻煩,而且維護的難度也相當大,一部小新就會造成資料錯誤。為了解決多個離散值的匹配問題,sql提供了in 語句,我們只需指定要匹配的資料集合就可以了,使用方法為"in(值1, 值2,值3)"

要完成例1的的話,可以用下面的sql語句:

select fage, fnumber, fname from t_employee where fage in (23,25,28)

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

| fage | fnumber  | fname |

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

|   25 | dev001   | tom   |

|   28 | dev002   | jerry |

|   23 | hr001    | jane  |

|   25 | hr002    | tina  |

|   28 | it001    | smith |

|   25 | sales001 | timmy |

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

我們還可以使用in讓字段與其他表中的值進行匹配,比如「查詢所有姓名中遲到記錄表中的員工的資訊

,要實現這樣的功能就需要

in 搭配子查詢來使用,關於這一點我們將在後面的章節中介紹。

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

沒有新增非空約束列是可以為空值的 也就是null 有時我們需要對空值進行檢測,比如要查詢所有姓名未知的員工資訊。既然null代表空值,有開發人員試圖通過下面的sql語句來實現 select from t employee where fname null 這個語句是可以執行的,不過執行以後我們看不到...

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

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

SQL學習之高階資料過濾

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