GBase8s数据库select子句5
ALL、ANY、SOME 子查询
下列示例返回所有包含一项的所有订单的订单编号,该项的总价大于订单编号 1023 中每项的总
价。第一个 SELECT 使用 ALL 子查询,第二个 SELECT 通过使用 MAX 聚集函数产生相同的
结果。
SELECT DISTINCT order_num FROM items
WHERE total_price > ALL (SELECT total_price FROM items
WHERE order_num = 1023);
SELECT DISTINCT order_num FROM items
WHERE total_price > SELECT MAX(total_price) FROM items
WHERE order_num = 1023);
下列 SELECT 语句返回所有包含一项的所有订单的订单编号,该项的总价大于订单编号 1023 中
至少一项的总价。第一个 SELECT 语句使用 ANY 关键字,而第二个 SELECT 语句使用 MIN
聚集函数:
SELECT DISTINCT order_num FROM items
WHERE total_price > ANY (SELECT total_price FROM items
WHERE order_num = 1023);
SELECT DISTINCT order_num FROM items
WHERE total_price > (SELECT MIN(total_price) FROM items
WHERE order_num = 1023);
如果子查询恰好返回一个值,则您可在子查询中省略关键字 ANY、ALL 或 SOME。如果您省略
ANY、ALL 或 SOME,且子查询返回多个值,则您会收到错误。下一示例中的子查询仅返回一
行,因为它使用聚集函数:
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526