2015-04-07 2 views
0

Я получаю ошибкуPostgresql Синтаксическая ошибка или вблизи «где»

ошибка синтаксиса или вблизи «где» LINE 5: где молния в (выберите почтовый индекс из застежек-молний, ​​где город = «Сакра

, когда я пытаюсь запустить этот код.

update listings 
set price = CASE WHEN (listings.price IS NOT NULL) THEN (price * 
(((100+(select price_change from zips where zips.zipcode=listings.zip))/100))) 
where zip in (select zipcode from zips where city = 'Sacramento'); 

Видит кто-либо легко исправить ошибки? или я пришел с каким-то мусорным кодом?

+0

Вы не нужны дела, так как у вас нет ' еще 'часть. Просто добавьте 'price is not null' в ваше предложение where, и вы можете избавиться от всего' CASE' и сделать обновление еще более эффективным. –

+0

просто увидеть обновленный ответ @a_horse_with_no_name предложение добавлено :) –

ответ

0

Добавить конец ключевое слово непосредственно перед где п

update listings 
set price = CASE WHEN (listings.price IS NOT NULL) THEN (price * 
(((100+(select price_change from zips where zips.zipcode=listings.zip))/100))) END 
where zip in (select zipcode from zips where city = 'Sacramento'); 

В соответствии с @ a_horse_with_no_name замечании

update listings 
set price = (price * (((100+(select price_change from zips where zips.zipcode=listings.zip))/100))) 
where zip in (select zipcode from zips where city = 'Sacramento') and listings.price IS NOT NULL 
0
update listings 
set price = CASE WHEN (listings.price IS NOT NULL) THEN (price * 
(((100+(select price_change from zips where zips.zipcode=listings.zip))/100))) 
where zip in (select zipcode from zips where city = 'Sacramento') 

удалить; еще раз!

+0

не ответ, который он ищет –