oracle中if else功能的實現的3種寫法

2021-07-03 16:00:03 字數 1194 閱讀 5274

經常會用到的,記錄一下

1.case when

case when a='1'then 'aaa'

when a='2' then 'bbb'

else

'ccc'

end as name

注意點: 

1、以case開頭,以end結尾

2、分支中when 後跟條件,then為顯示結果

3、else 為除此之外的預設情況,類似於高階語言程式中switch case的default,可以不加

4、end 後跟別名

2.decode

decode(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value等於if1時,decode函式的結果返回then1,...,如果不等於任何乙個if值,則返回else。

3.標準sql規範if/else

一、單個if

1、if a=... then

.........

end if;

2、if a=... then

......

else

....

end if;

二、多個if

if a=.. then

......

elsif a=.. then

....

end if;

這裡中間是「elsif」,而不是else if 。這裡需要特別注意

另外 剛才寫了個sql 還用到 instr

需求是有個字段 zywfwzss裡面可能存在,比如"稅種:增值稅,所屬時期:***x" 的字串,但是只需要提取稅種的名稱,即「增值稅」,如果欄位裡沒有稅種,就直接是增值稅

我是這樣寫的:

select case

when instr(zywfwzss,'稅種:') >0

then substr(zywfwzss,instr(zywfwzss,':')+1 ,instr(zywfwzss,',')-instr(zywfwzss,':')-1)

else '增值稅'

end as sz

from taxis_wfwz_sjdr

oracle中if else功能的實現

一 單個if 1 if a then end if 2 if a then else end if 二 多個if if a then elsif a then end if 這裡中間是 elsif 而不是else if 這裡需要特別注意 2 decode函式 decode的語法 decode val...

oracle中if else功能的實現的3種寫法

1 標準sql規範 一 單個if 1 if a then endif 2 if a then else endif 二 多個if if a then elsif a then endif 這裡中間是 elsif 而不是else if 這裡需要特別注意 2 decode函式 decode的語法 dec...

oracle中if else功能的實現的3種寫法

1 標準sql規範 一 單個if 1 if a then endif 2 if a then else endif 二 多個if if a then elsif a then endif 這裡中間是 elsif 而不是else if 這裡需要特別注意 2 decode函式 decode的語法 dec...