2012-03-13 4 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' 
; 

Лучшее, что я мог найти в своих поисках. Я получаю следующее сообщение об ошибке:

ORA-00905: отсутствует ключевое слово

Это использует Oracle 10g.

Заранее благодарим за любую помощь.

ответ

1

попробовать следующие

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

Почему это выглядит так очевидно, после того, как вы видите, ответ ?? БЛАГОДАРЯ! –

+0

Очень частое чувство :) –

Смежные вопросы