SQL函数——CASE

     前段时间在学习oracle数据库时,看到了decode函数,主要是sql语句中的判断语句,可以根据判断进行赋值。然后就想到了之前在做今日开讲时,同样也遇到了类似的问题,数据库存储的是0或1,而界面显示时却不能为这样的。当时只是说做个判断,自己也知道,就没有做过多的思考。直到看到decode函数之后,才明白其实做判断,无非用的是sql中的函数。

     需求说明:比如数据库中存的用户级别为0和1,分别代表管理员和操作员,在查询人员信息情况时,界面需要显示用户级别这一列,库里存的是0和1,但是你得显示成“管理员”或者“操作员。

     自己在下边就来做了个测试,由于本地只装了SQL Server,就暂且那这个进行测试(装了mysql的可以用这个也试试)。刚开始的时候,在sqlserver中也是使用decode函数,结果提示语法错误。好吧,是我无知了,以为这个函数是数据库通用的呢。查资料发现,在sqlserver中使用的是CASE When语句进行判断的。如下:

    

select userId, 
  case JID    --对JID进行分情况赋值
  when '0' then '管理员'  --0代表管理员
  when '1' then '一般用户'   --1代表一般用户
  else '一般用户'    --设置默认值
  END AS Level
 from T_User
    运行结果如下:

      

    这样的话就可以直接显示我们需要的内容。

    

    小结:

      数据库中存在很多像这样的函数,能给我们带来很大的便利。oracle、sqlserver和mysql中都存在这一类型的函数,只不过形式不同罢了。所以,在学习的初期,遇到某个函数时,不妨去其他类型的数据库中试验一下。这样一来自己就不用刻意的去记这些函数,还可以增加自己对函数的理解和运用。

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值