2013-02-22 103 views
7

我想知道如果有如果可能達到像如果-ELSEIF-ELSE在Oracle SQL '條件'

一些事情 'IF-ELSEIF-ELSE' 的條件,我知道有一個「案例時,則 - '但'它一次只檢查一個條件(如果我理解正確)。如何能夠做到在Oracle SQL IF-ELSEIF-ELSE場景

+1

嵌套CASE語句是一種選擇。我對甲骨文不太瞭解,不知道是否有更好的方法。 – 2013-02-22 10:49:35

+0

你是什麼意思由_it檢查一次只有一個條件_作爲案例陳述應該有所幫助..如果不然後使用解碼,但它只做平等檢查 – asifsid88 2013-02-22 10:53:12

+0

請參閱http://stackoverflow.com/questions/14386881/using-if- else-in-oracle – glh 2013-02-23 07:38:38

回答

17

可以的if/else使用情況之類的語句T選用他的。

SELECT ename, CASE WHEN sal = 1000 THEN 'Minimum wage' 
        WHEN sal > 1000 THEN 'Over paid' 
        ELSE 'Under paid' 
       END AS "Salary Status" 
FROM emp; 
1

我知道有一個「的情況下,當-THEN-ELSE」,但它同時

你所描述的是一個簡單的例子只檢查一個 條件。 Oracle有兩個案例類型:簡單搜索(在這裏看到更多信息http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm

SIMPLE

case A 
    when 1 then 'foo' 
    when 2 then 'bar' 
    else .. 
end 

搜尋過

case 
    when A=1 and B='A' then 'foo' 
    when D + C =1 and B !='A' then 'Bar' 
    else .. 
end 

你可能想使用搜索情況。你可以在PL/SQL或SQL中使用它們。例如,在SQL中

select .. 
    from table 
where case 
     when A=1 and B='A' then 'foo' 
     when D + C =1 and B !='A' then 'Bar' 
     else .. 
     end = 'foo' 
+0

我曾經使用過這樣的東西,但它不起作用 – user964147 2013-02-22 11:02:34

+0

是的,我需要搜索的案例 – user964147 2013-02-22 11:02:53