oracle的if語(yǔ)句采用decode函數(shù)。
東光網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),東光網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為東光成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的東光做網(wǎng)站的公司定做!
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value
等于if1時(shí),DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個(gè)if值,則返回else
示例:
比如,有個(gè)if語(yǔ)句如下
if(a==1){//如果a等于1,返回2,否則返回3
return 2;
}else{
return 3;
}
翻譯成DECODE如下
DECODE(a,1,2,3)
在oracle中,我們可以用case when 代替if
case when length(id)7 then '成功' else '失敗' end name (沒辦法把整個(gè)語(yǔ)句發(fā)上來,一發(fā)就說網(wǎng)絡(luò)異常)
如果另建新表(這張表需要確實(shí)存在),那么就create table table_name后面加上上面的語(yǔ)句就可以了。
如果你的name字段已經(jīng)存在,也就是說你需要在那么中加上成功個(gè)失敗的字樣,那么就需要稍微修改一下
case when length(id)7 then '成功' else '失敗' end name
改為
case when length(id)7 then name||'成功' else name||'失敗' end name
具體的要根據(jù)實(shí)際需求酌情修改
下邊是我自己寫的,但是執(zhí)行起來報(bào)錯(cuò),請(qǐng)前輩們解答,感謝~
update salary201911 set 個(gè)稅 =
(
case when 計(jì)稅金額 =36000 then 計(jì)稅金額*3%-年度個(gè)稅累計(jì)? when? 36000計(jì)稅金額 =144000 then 計(jì)稅金額*10% - 2520 - 年度個(gè)稅累計(jì)
when 144000計(jì)稅金額 =300000 then 計(jì)稅金額*20% - 16920 - 年度個(gè)稅累計(jì)
when 300000計(jì)稅金額 =420000 then 計(jì)稅金額*25% - 31920 - 年度個(gè)稅累計(jì)
when 420000計(jì)稅金額 =660000 then 計(jì)稅金額*30% - 52920 - 年度個(gè)稅累計(jì)
when 660000計(jì)稅金額 =960000 then 計(jì)稅金額*35% - 85920 - 年度個(gè)稅累計(jì)
else 計(jì)稅金額*45% - 181920 - 年度個(gè)稅累計(jì)
end
);
你這個(gè)應(yīng)該把count(A)賦給一個(gè)變量 count(B)也同樣,然后比較兩個(gè)變量
比如:select count(A) into 變量1 ,count(B) into 變量2 from aaaa;
if 變量1變量2 then
選擇變量1對(duì)應(yīng)的行
else
選擇變量2對(duì)應(yīng)的行
endif
Create Or Replace View mark_v
As
Select Id,Case score When '優(yōu)' Then '90' When '中' Then '75' When '差' Then '30' Else score End As score
From mark
或者還有個(gè)簡(jiǎn)單的寫法:
Create Or Replace View mark_v
As
Select Id,decode(score,'優(yōu)','90','中','75','差','30',score) As score
From mark
以上希望對(duì)你有所幫助