2012-03-13 19 views
1

基本問題,用戶開始。更新列並引入條件

我在表(房間)中有一列(價格)。列(價格)有一個限制,它必須在20和100之間。

我需要更新列(價格)以反映價格上漲5%。但是,此列中的某些字段在更新後的價格大於100,導致它在約束之外下降 。爲了解決這個問題,那些超過100的價格需要設置爲100。這裏是我有:

UPDATE ROOM 
SET PRICE= 
CASE 
    WHEN PRICE*1.05<100 
    THEN PRICE*1.05 
    ELSE PRICE=100 
END CASE 
WHERE HOTELNO='1004' OR 
     HOTELNO='1001' OR 
     HOTELNO='1002' 
; 

最好,我可以在我的搜索。

這是使用Oracle 10g缺少關鍵字:我收到以下錯誤:

ORA-00905。

在此先感謝您的幫助。

回答

1

嘗試以下

update room 
set price=price*1.05 
where hotelno in ('1004','1001') 
and (price*1.05)<100 
+0

爲什麼它看起來那麼明顯,你看到答案後?謝謝! – 2012-03-13 04:14:26

+0

很頻繁的感覺:) – 2012-03-13 04:15:48