IN 、 ALL 、 SOME 、 ANY 都算是邏輯運算子。
語法
scalar_expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } { ALL | SOME | ANY } ( subquery )
- SOME 和 ANY 是相同意義的。使用這二個運算子時,只要 scalar_exp 符合 subquery 中任何一個值,判斷式就會成立。
- ALL 運算子則必須 scalar_exp 符合 subquery 中所有的值,判斷式才成立。
- ALL 是一個受限制的 SELECT 陳述式,其中不允許使用 ORDER BY 子句和 INTO 關鍵字。
範例說明
建立測試資料
CREATE TABLE #T1(ID int) ; INSERT #T1 VALUES (1) ; INSERT #T1 VALUES (2) ; INSERT #T1 VALUES (3) ; INSERT #T1 VALUES (4) ; CREATE TABLE #T2(ID int) ; INSERT #T2 VALUES (2) ; INSERT #T2 VALUES (3) ;
例1:
SELECT * FROM #T1 WHERE ID IN ( SELECT ID FROM #T2 ) SELECT * FROM #T1 WHERE ID < SOME ( SELECT ID FROM #T2) SELECT * FROM #T1 WHERE ID < ANY ( SELECT ID FROM #T2) SELECT * FROM #T1 WHERE ID < ALL ( SELECT ID FROM #T2)
例2:
SELECT * FROM #T1 WHERE ID NOT IN ( SELECT ID FROM #T2 ) SELECT * FROM #T1 WHERE ID <> SOME ( SELECT ID FROM #T2) SELECT * FROM #T1 WHERE ID <> ANY ( SELECT ID FROM #T2) SELECT * FROM #T1 WHERE ID <> ALL ( SELECT ID FROM #T2)
沒有留言:
張貼留言