2016-03-14 165 views
0

我試圖在我的PRICE表中返回MINIMUM VALUE和MAXIMUM VALUE(該字段是val_price)。 這個查詢有什麼問題?Oracle SQL Developer 0913 - 值太多

select des_price, val_price from price 
WHERE val_price IN 
(SELECT MIN(val_price), MAX(val_price) from price); 

的錯誤信息是:
00913. 00000 - 「值過多」
*原因:
*操作:

如果我嘗試在內部選擇一切只是一個值正常工作,但有多個值,我不知道爲什麼不工作。 這個例子正常工作與2個值在遵循內部的選擇:

UPDATE price SET val_price = val_price * 1.05 
WHERE des_price in('NORMAL','RELEASE'); 

回答

1

當您在Where條款

使用只有一列嘗試這種方式

SELECT des_price, 
     val_price 
FROM price 
WHERE val_price IN (SELECT Min(val_price) 
        FROM price 
        UNION ALL 
        SELECT Max(val_price) 
        FROM price); 
不能從 sub-query選擇兩列

SELECT des_price, 
     val_price 
FROM price 
WHERE (val_price, val_price) IN (SELECT Min(val_price), 
              Max(val_price) 
            FROM price) 
+0

它正在工作用你的代碼......你有沒有關於Oracle SQL的好書的理解,以瞭解爲什麼我的錯誤?謝謝。 – FIM