下邊是我自己寫的,但是執(zhí)行起來報錯,請前輩們解答,感謝~
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、瑞金ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的瑞金網(wǎng)站制作公司
update salary201911 set 個稅 =
(
case when 計稅金額 =36000 then 計稅金額*3%-年度個稅累計? when? 36000計稅金額 =144000 then 計稅金額*10% - 2520 - 年度個稅累計
when 144000計稅金額 =300000 then 計稅金額*20% - 16920 - 年度個稅累計
when 300000計稅金額 =420000 then 計稅金額*25% - 31920 - 年度個稅累計
when 420000計稅金額 =660000 then 計稅金額*30% - 52920 - 年度個稅累計
when 660000計稅金額 =960000 then 計稅金額*35% - 85920 - 年度個稅累計
else 計稅金額*45% - 181920 - 年度個稅累計
end
);
oracle的if語句采用decode函數(shù)。
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1時,DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個if值,則返回else
示例:
比如,有個if語句如下
if(a==1){//如果a等于1,返回2,否則返回3
return?2;
}else{
return?3;
}
翻譯成DECODE如下
DECODE(a,1,2,3)
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
或者還有個簡單的寫法:
Create Or Replace View mark_v
As
Select Id,decode(score,'優(yōu)','90','中','75','差','30',score) As score
From mark
以上希望對你有所幫助
如果是 SQL 語句里面使用。
使用 DECODE 或者 CASE WHEN
DECODE 的用法就是
DECODE(abc, 50, 'A', 'B')
CASE WHEN 的用法就是
CASE WHEN abc=50 THEN 'A' ELSE 'B' END
如果是在存儲過程里面的話,就是簡單的 IF/ELSE 了
SQL 語句的話,就是
SELECT
abc, DECODE(abc, 50, 'A', 'B')
FROM
表
pl/sql的代碼一般都是寫在過程,函數(shù)和觸發(fā)器中,你寫的話要注意,單寫一段也沒有什么問題
pl/sql的select語句要有東西接住查詢出來的值。這是與sql不同的地方:
DECLARE
v_tmp VARCHAR2(100);
BEGIN
IF 1=1 THEN
SELECT 1 INTO v_tmp FROM DUAL;
dbms_output.put_line(v_tmp);
END IF;
END;