📄 decode_求所得税.txt
字号:
--------------------------------------------------------------------
--最高税率:<1000, 税率 0。1000--2000 税率 0.1。2000--3000 税率 0.2,3000--4000 0.31
--4000以上0.5
insert into sm_emp values('aa1','aa1',null,'12');
insert into sm_emp values('aa3','aa3',3001,'12');
insert into sm_emp values('aa4','aa4',4001,'12');
insert into sm_emp values('aa5','aa5',5001,'12');
--求sm_emp表中雇员的所得税
select name "姓名", salary "薪金",
decode( trunc(salary/1000, 0), 0, 0.0,
1, (salary-1000)*0.1,
2, (salary-2000)*0.2 +1000*0.1,
3, (salary-3000)*0.31+1000*0.2+1000*0.1,
(salary-4000)*0.5+1000*0.31+1000*0.2+1000*0.1) "所得税"
from sm_emp;
--------------------------------------------------------------------------
select name "姓名", salary "薪金",
decode( trunc(nvl(salary,0)/1000, 0), 0, 0.0,
1, (salary-1000)*0.1,
2, (salary-2000)*0.2 +1000*0.1,
3, (salary-3000)*0.31+1000*0.2+1000*0.1,
(salary-4000)*0.5+1000*0.31+1000*0.2+1000*0.1) "所得税"
from sm_emp;
--建立sm_emp_tax1代替sm_emp
create table sm_emp_tax1
(EmpID char(10) ,
Name varchar2(10),
salary number(8,2),
TelNo char(8),
tax number(8,2));
--为sm_emp_tax1插入相同数据
insert into sm_emp_tax1 (empid,name,salary,telno) select * from sm_emp;
--更新sm_emp_tax1 的tax字段
update sm_emp_tax1 set tax=decode( trunc(nvl(salary,0)/1000, 0), 0, 0.0,
1, (salary-1000)*0.1,
2, (salary-2000)*0.2 +1000*0.1,
3, (salary-3000)*0.31+1000*0.2+1000*0.1,
(salary-4000)*0.5+1000*0.31+1000*0.2+1000*0.1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -