SQL學習之高階資料過濾

2021-09-07 06:57:36 字數 1893 閱讀 4015

一、高階資料過濾之in操作符

in 操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。in取一組由逗號分隔、括在圓括號中的合法值。**如下:

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail

現在我們需要檢索itemid值為0002和0004的行記錄資料,

(1)第一種寫法,通過or操作符

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail where itemid=

'0002

'or itemid=

'0004

'

(2)第二種寫法,通過in操作符

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail where itemid in('

0002

','0004

')

兩種結果顯示:in操作符和or操作符完成了同樣的效果,但是使用in操作符的效果更好!它的優點如下:

第一點:在有很多的合法選項時(就是需要判斷的字段有很多的時候),in操作符的語法更清楚,更直觀。

第二點:在與其他and和or操作符組合執行in時,求值順序更容易管理。

第三點:重要的一點是in操作符一般比一組or操作符執行的更快(上面的例子中可能無法察覺,但是一旦查詢的資料量大的話,就能看出來)

第四點:超級重要的一點就是in操作父可以包含其他的select語句,能夠更動態的建立where子句。

二、not操作符

where子句的not操作符有且只有乙個功能,那就是否定其後所跟的任何條件。因為not從不單獨使用(他總是與其他操作符一起使用),所以他的語法與其他操作符有所不同。not關鍵字可以用在要過濾的列前,而不僅實在其後。**如下:

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail

現在我們需要resultlevel列值不為-1的所有資料行

第一種寫法:"<>代表!="

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail where resultlevel<>-

1select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail where resultlevel!=-

1

第二種寫法:

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail where

not resultlevel=-

1

兩種方法的檢索結果都一樣,但是為什麼我們要用not?原因如下:

對於上面這種簡單的where語句,使用not確實沒什麼優勢。但在更複雜的子句中,not是非常有用的。例如,在與in操作符聯合使用時,not可以非常簡單的找出與條件列表不匹配的行。

select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t_check_infodetail where resultlevel!=-1 

SQL學習筆記之高階資料過濾

通過組合where子句建立功能更強 更高階的搜尋條件 sql可以通過and子句和or子句組合多個where子句 要過濾不止乙個列,可以通過and操作符給where子句附加條件 select prod id,prod price,prod name from products where vend i...

1 2(SQL學習筆記)高階資料過濾

一 and 通過where可以進行條件過濾,但只限於單個條件。通過and就可以連線多個條件,and代表了和,即and兩邊的條件全部滿足才會通過篩選。這就類似程式語言中的 以下表為例 找出vend id 等於 dll01 且prod price 4資訊。二 or or代表了或者,篩選時只需滿足or任意...

PowerMock 之高階學習

這裡的區域性變數沒有採取依賴注入的方式,而是採取了一種而是在方法內部 new出乙個 employeedao,我們通常都會寫這樣的 平時我們也可能或碰上這樣的問題,那麼我們怎麼去解決這個問題呢!public class employeeservice 說明 當使用powermockito.whenne...