2014-09-30 190 views
2

我有一個非常簡單的問題,我認爲。我一直在網上尋找,但一直沒能找到任何東西。我試圖添加一個IF語句基本上我的Oracle 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%' 

我想更新狀態,這樣,如果COUNT(SEC.IS_AW_AUTH_NAME)大於0,它將插入「M」。我怎麼寫這個?

+3

使用'CASE'聲明 – SoulTrain 2014-09-30 20:51:07

+0

你確定要'PS_Z_TREND_NOW_TBL'更新的所有記錄,如果'COUNT(SEC.IS_AW_AUTH_NAME)'是大於0?難道只有當'a.is_aw_auth_name = sec.is_aw_auth_name'時才需要這樣做。難道你想在你的where子句或合併語句中使用相關的子查詢嗎? – 2014-09-30 21:19:58

回答

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%'