关于我使用Oracle select 中使用 case 的坑 特此纪念

昨天接到一个需求,查询数据库中的某条数据的状态,本来很简单的一个需求,却因为表中没有该字段而陷入阻塞。

解决方式有:向表中追加个字段,直接在查询时计算返回 、查出数据后在后端判断。。。(其他的没想到,有路过的大神可以提点下 万分感谢)

个人选择的是 在查询数据库的时候 添加该状态的字段 。

select (表字段),

(

case 字段值 when '值1' then '显示值1'

when '值2' then '显示值2'

end

) 字段别名 from 表名

大概上面这个样子

但是 我需要的状态码 是需要通过表中 多个字段 逻辑判断 得到的 所以继续套用 上面的 格式跑了一次

报错 ORA-00905: 缺失关键字

后面偷偷瞅了几眼 公司大佬们写的 函数 了解到了

上面的格式 仅仅适用于 将某个字段的特定值 转换成我们想要的输出 不支持逻辑判断

需要用到逻辑判断的 语法大概是

case when 逻辑表达式1 then 显示值1

        when    逻辑表达式2 then 显示值2

end   

纪念我丢失的一下午--绝对不是摸鱼!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值