DECODE()函数是Oracle中最有特色的一个函数,它类似于程序中的if…else if…else if…else ,但是判断的内容都是一个具体的值。
DECODE()函数语法
DECODE(列 | 表达式,值1,输出结果,值2,输出结果,…,默认值)
case 表达式功能与DECODE()函数比较类似,都是执行多条件判断,case 主要针对给定的列或者字段进行一次判断,在when中编写判断语句,在then中编写处理语句,最后如果都不满足则使用else进行处理。
DECODE()函数与case when … then …else …end用法对比实例
SELECT A . ID, A .sn_number 序列号,
DECODE (A .STATUS,'I','在库',
'T','已拣',
'D','拆箱核销',
'C','在途待入',
A .STATUS) 状态1,
( CASE WHEN A .STATUS = 'C' THEN '在途待入'
WHEN A .STATUS = 'T' THEN '已拣'
WHEN A .STATUS = 'I' THEN '在库'
WHEN A .STATUS = 'D' THEN '拆箱核销'
ELSE A .STATUS END ) 状态2
FROM WMS_BOX A