Что не так с этим ОБНОВЛЕНИЕМ ОТ использования оператора case? - PullRequest
0 голосов
/ 24 апреля 2010
update p
set p.storePrice = 
    CASE 
       WHEN p.costPrice BETWEEN 0.00 AND 1.00 
       THEN p.costPrice * 1.0
    CASE 
       WHEN p.costPrice BETWEEN 0.00 AND 1.00 
       THEN p.costPrice * 1.0
    ELSE 
       p.msrpPrice
    END
FROM product p                      
WHERE p.type = 1

Ошибка говорит:

Msg 156, Level 15, State 1, Line 9
Incorrect syntax near the keyword 'CASE'.

Кажется, я не вижу проблем с sql?

Ответы [ 2 ]

4 голосов
/ 24 апреля 2010

Есть два начальных case. Удалите второй, как:

case 
    when x=1 then ...
    when x=2 then ...
end
2 голосов
/ 24 апреля 2010

Попробуйте с:

UPDATE p
    SET 
     p.storePrice = 
            CASE 
                WHEN 
                    p.costPrice BETWEEN 0.00 AND 1.00 
                    THEN p.costPrice * 1.0

                WHEN 
                    p.costPrice BETWEEN 0.00 AND 1.00 
                    THEN p.costPrice * 1.0                              

                ELSE 
                    p.msrpPrice
            END
FROM product p                    
WHERE p.type = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...