例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 ...