EXISTS (subquery):子查詢至少回傳一列 → TRUE;無列回傳 → FALSE。
SELECT OWNERFIRSTNAME, OWNERLASTNAME
FROM ANTIQUEOWNERS
WHERE EXISTS (
SELECT * FROM ANTIQUES WHERE ITEM = 'Chair'
);
注意:此範例中子查詢未與外層關聯,故為「全表掃描」語意。實務常用相關子查詢(Correlated Subquery)依外層列值篩選。
<比較運算子> ALL (subquery):外層值需滿足與子查詢每一值的比較。
SELECT BUYERID, ITEM
FROM ANTIQUES
WHERE PRICE >= ALL (SELECT PRICE FROM ANTIQUES);
PRICE >= 所有價格 → 僅最高價符合>=(而非 >),因最高價本身在集合中等效寫法(較直觀):
SELECT BUYERID, ITEM FROM ANTIQUES
WHERE PRICE = (SELECT MAX(PRICE) FROM ANTIQUES);
| 運算子 | 語意 | 典型用途 |
|---|---|---|
| EXISTS | 子查詢非空 | 檢查關聯資料是否存在 |
| IN | 值在集合中 | 離散值比對 |
| ALL | 與集合每值皆滿足比較 | 極值查詢(MAX/MIN 替代) |