oracle的update与if多个判断怎么用?
下边是我自己写的,但是执行起来报错,请前辈们解答,感谢~
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语句?
oracle的if语句采用decode函数。
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else
示例:
比如,有个if语句如下
if(a==1){//如果a等于1,返回2,否则返回3
return 2;
}else{
return 3;
}
翻译成DECODE如下
DECODE(a,1,2,3)
oracle 视图 if 语句的使用
Create Or Replace View mark_v
As
Select Id,Case score When '优' 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,'优','90','中','75','差','30',score) As score
From mark
以上希望对你有所帮助
oracle怎么写"IF"语句?
如果是 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
表
oracle中简单if用法的问题
pl/sql的代码一般都是写在过程,函数和触发器中,你写的话要注意,单写一段也没有什么问题
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;