多值檢測
阿新 • • 發佈:2018-11-09
“公司要為年齡為23歲、25歲和28歲的員工發福利,請將他們的年齡、工號和姓名檢索出來”,要完成這樣的功能,我們可以使用OR語句來連線多個等於判斷。SQL語句如下:
SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge=23 OR FAge=25 OR FAge=28
執行完畢我們就能在輸出結果中看到下面的執行結果:
這裡要檢索的年齡值是很少的,只有3個,如果要求我們“檢索年齡為21歲、22歲、25歲、28歲、30歲、33歲、35歲、38歲、46歲的員工資訊”,那麼我們就要用OR連線九個等於判斷:
SELECT FAge,FNumber,FName 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我們只要指定要匹配的資料集合就可以了,使用方法為“IN (值1,值2,值3……)”。要完成“公司要為年齡為23歲、25歲和28歲的員工發福利,請將他們的年齡、工號和姓名檢索出來”這樣功能的話,可以使用下面的SQL語句:
SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN (23,25,28)
執行完畢我們就能在輸出結果中看到下面的執行結果:
可以看到執行結果和使用OR語句來連線多個等於判斷的方式是一樣的。
使用IN我們還可以讓欄位與其他表中的值進行匹配,比如“查詢所有姓名在遲到記錄表中的員工資訊”,要實現這樣的功能就需要IN來搭配子查詢來使用。