【发布时间】:2023-03-07 15:59:01
【问题描述】:
我对 Oracle SQL 还很陌生,但它的逻辑已经开始让我感到困惑。我正在尝试从特定列 PRICE 具有最小值的表中选择所有列。
这行得通:
SELECT MIN(PRICE) FROM my_tab;
这会返回最小值。但是为什么我不能选择该行中的所有列?以下将不起作用:
SELECT * FROM my_tab WHERE PRICE = MIN( PRICE );
我在这里缺少什么?干杯,伙计们!
*编辑*
这是我遇到问题的完整代码:
SELECT * FROM (SELECT c.NAME, o.* FROM customers c JOIN customer_orders o ON c.CUST_NBR = o.CUST_NBR) AS t WHERE t.PRICE = (SELECT MIN(t.PRICE) FROM t);
【问题讨论】:
-
您不能在 select 语句的 where 子句中使用聚合。那是语法错误。
-
这不是 Oracle 独有的——它在大多数 SQL 实现中都很常见。