0

私は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 );

4

3 に答える 3

0

以前の SO questionを参照してください。特に、目的に最適な「Vash」による回答を参照してください。1 つのレコードのみを参照できる場合、オラクルは価格のインデックスを使用するほどスマートである可能性があるため、副選択は避けたいと思われることに注意してください。

ほとんどのデータベース (明らかに Oracle ではありません) には、このような質問に対してTOP 1orLIMIT節があります。

于 2013-04-04T15:30:28.543 に答える