数据库判断取值

  如果要对数据库中某一列数据进行分类。一般有3中写法:

(比如现在有张商品表protable,表中有3个字段商品序号id,商品名称name,商品价格price。需求是:price大于10的商品名称后面要加上B的后缀,price小于1的后面加上S的后缀,位于价格中间的加上M的后缀)

1   union all方法

select

    *

from

(

   select name||'S' newname from protable where price < 1

   union all
   select name||'M' newname from protable where price >= 1 and price <= 10
   union all
   select name||'B' newname from protable where price > 10

)

2   decode方法 

select 
        decode(sign(price-10), 1, name||'B', 0, name||'M', decode(sign(price-1), 1, name||'M', 0, name||'M', -1, name||'S'))
    from 
        protable

3   case when语句

select
    case when price < 1
    then name||'S'
    when  price > 10

    then name||'B'
    else name||'M'

    end
from protable

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值