DECODE函数

decode函数很简单,相当于if....else....,只不过语法很简洁

decode()

  1. decode(条件,值1,值2,值3……)

当decode条件,值1满足时,就输出值1,值2满足时,就输出值2,。。。。以此类推,

  1. decode(字段值,值1,值2,值3……)

当字段值等于值1 ,则输出值2,否则输出值3

select 
T.LOT_ID,
T.LOT_RRN,
T.STARTED_TIMESTAMP,   ----开始加工时间
T.END_TIMESTAMP,
T.LOT_TYPE,
T.NEXT_STEP_ID_VERSION2,
T.EQPT_RRN,
T.CARRIER_LIST_RRN,
DECODE( T.LOT_STATUS,
'FINISH','结束加工',
'RUNNING','加工中',
'WAITING','等待加工',
T.LOT_STATUS) LOT_STATUS_RD
from  lot T
WHERE T.STARTED_TIMESTAMP>=TO_DATE('2022-09-01','YYYY-MM-DD')

输出结果为

 语句意思为,当字段值显示  finish 输出 结束加工;waiting输出等待加工;running输出加工中,其余的还是原样输出

decode函数和其他函数结合

decode(sign(值1-值2),-1,变量1,变量2)

sign()函数:根据数值是0,正数,负数,分别返回0,1,-1

例如:

值1=10,值2=20

sign(值1-值2),返回-1,decode()返回变量1 ,达到取出最小值的目的

实例:查询某班男生女生数量

select count(*)  from 表 where 性别=男;

select count(*)  from 表 where 性别=女;用union合并一下结果

也可以使用

select decode(性别,男,1,0),decode(性别,女,1,0) from 表

  • 14
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值