decode函数用法

DECODE 函数将该数值与一系列的序偶相比较,以决定最后的返回结果 。序偶序偶,就是成对出现 ; 我们将这个函数与 switch 比较,我们发现他们基本相似,唯一不同的是 switch 将要比较的值放在 case 后面都加上了 break 中。

  以下一个例子:

   SELECT id,

   DECODE(flag,’Y’,'Yes’,'N’,’No’,NULL,’None’,'Yes’)

   FROM t_test;

   t_test flag 字段为 Y 时返回 Yes ,为 N 时返回 No ,为 NULL 时返回 None ,默认返回 Yes

  看看我遇到的问题:

   SELECT a.id,

   a.user_name,

   a.oper_time time2,

   a.oper_type,

   a.description,

   a.oper_flag,

   decode(a.oper_flag, '1', ' 成功 ', ' 失败 ') oper_flag,

   a.ip,

   b.true_name

   FROM SEC_LOG_OPERATION a

   left join sec_user b on a.user_name = b.user_name

   where 1 = 1

   order by oper_time desc

  原来这红色部分是: decode(a.oper_flag, 1, ' 成功 ', ' 失败 ')

  在查询的时候会报错,原因是 oper_flag 这个字段数据中有非数字类型,也就是这个字段不仅有 1 0 ,还有 失败 ,这样数据不等于字符。 所以把 1 当字符处理就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值