一:DECODE的语法:
DECODE(value,if1,then1,if2,then2,if3,then3,…,else),表示如果value 等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。
decode (expression, search_1, result_1, search_2, result_2, ....
search_n, result_n)
decode (expression, search_1, result_1, search_2, result_2, ....
search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,通常的做法
是,先选出记录 中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:
select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,
salary from employee 是不是很简洁?
有学生成绩表student,现在要用decode函数实现以下几个功能&