oracle的decode函数用法是:
1、基本用法,根据一个条件字段进行简单的条件判断;
decode('条件','if1','then1','if2','then2','else')
2、多条件判断,根据多个条件进行不同的结果返回;
decode(条件,if1,then1,if2,then2,else)
3、嵌套DECODE函数,将DECODE函数嵌套使用以实现更复杂的条件判断和结果返回;
decode(sign(条件字段-条件),1,'输出1',0,'输出2',-1,'输出3')
sign函数会将括号内的数据进行划分,大于0的值划分为1,等于0划分为0,小于0划分为-1。
4、与其他SQL语句结合使用:将DECODE函数与其他SQL语句(如WHERE子句)结合使用以实现更灵活的数据查询和处理等等。
项目实操示例子
decode(COUNT(*),C.TJW_PLAN_QTY,'完成',0,'未开始','未完成') 状态
第一个较为简单,基础。
to_char(decode(C.TJW_PLAN_QTY,0,0,round(COUNT(*)/C.TJW_PLAN_QTY * 100,2)),'fm990.90')||'%' 达成率
第二个结合 round、count函数和'fm990.90'
格式’FM990.90’,FM表示将显示出来的字符串定位数没有值而显示的空格清理掉,作用和ltrim类似