經常會用到的,記錄一下
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...