2014-09-30 4 views
2

У меня довольно простой вопрос, который я думаю. Я смотрю в Интернете, но ничего не нашел. Я пытаюсь добавить оператор IF в основном для своего SQL-сервера.Oracle SQL Добавление утверждения IF

UPDATE PS_Z_TREND_NOW_TBL a 
    SET STATUS = ( 
SELECT COUNT(SEC.IS_AW_AUTH_NAME) 
    FROM PS_IS_AW_SECURITY sec 
WHERE sec.IS_AW_AUTH_NAME LIKE '%Manager%' 

Я хочу обновить STATUS так, что если COUNT(SEC.IS_AW_AUTH_NAME) больше 0 он будет вставить «M». Как бы я это написал?

+3

USE 'заявления CASE' – SoulTrain

+0

уверены, что вы хотите' PS_Z_TREND_NOW_TBL' обновление для всех записей, если 'COUNT (SEC.IS_AW_AUTH_NAME)' больше 0 Вы? Может быть, вы хотите, чтобы это было сделано только тогда, когда 'a.is_aw_auth_name = sec.is_aw_auth_name'. Может быть, вы хотите использовать коррелированный подзапрос в своем заявлении where или слиянии? –

ответ

3

С Case заявления.

UPDATE PS_Z_TREND_NOW_TBL a 
    SET STATUS = (CASE WHEN COUNT(SEC.IS_AW_AUTH_NAME) > 0 then 'M' 
       ELSE null END) 
FROM PS_IS_AW_SECURITY sec 
WHERE sec.IS_AW_AUTH_NAME LIKE '%Manager%' 
Смежные вопросы