1、IN 和 Not In 的子查询
SELECT ItemName FROM Items WHERE ItemID IN (SELECT ItemID FROM Orders WHERE Date >= to_date('2013/09/02'));
2、Exists 和Not Exists的子查询
SELECT ItemName FROM Items i WHERE EXISTS (SELECT * FROM Orders WHERE Date >= to_date('2013/09/02') AND ItemID = i.ItemID);
3、半连接、反连接
见Join
4、比较运算
SELECT ID, Name FROM Contest WHERE Score > (SELECT avg(Score) FROM Contest) ORDER BY Score DESC;
5、ANY/SOME/ALL 运算
SELECT OrderID FROM Orders WHERE quantity >= ANY (SELECT max(quantity) FROM Orders GROUP BY ItemID);
6、相关子查询
SELECT PatentID, Title FROM Patents p WHERE FileDate <= ALL (SELECT FileDate FROM Patents WHERE Region = p.Region);
7、多重嵌套
SELECT ItemID, ItemName FROM Items i WHERE NOT EXISTS (SELECT * FROM Orders WHERE CustomerID IN (SELECT CustomerID FROM Customers WHERE Country = ‘Belgium’) AND Quantity < 1000 AND ItemID = i.ItemID) OR ItemID != ALL (SELECT ItemID FROM Orders WHERE CustomerID IN (SELECT CustomerID FROM Customers WHERE Country = ‘Germany’) AND Quantity < 2000);
8、衍生表
SELECT m, count(*) FROM (SELECT max(x) m FROM a1 GROUP BY name) AS t GROUP BY m ORDER BY count(*) DESC;