zoukankan      html  css  js  c++  java
  • 关于三目运算实例

    平时在项目中常用到三目运算法,因为简单的if,else 可以用三目运算来替代,这样可以减少很多代码量,今天有个同事在sql中遇到类似情况,想通过最简洁的代码来过滤,百度了一下,发现sql中有类似三目运算的情况,跟酱油爷说的case when差不多,记录下来以备以后不时之需:

    类似三目运算的sql:

      select * from T_Op_ClassLearnerMapping where type in
     (
      Case
         WHEN type=1 THEN '1' ELSE '2'
      END
      )
      order by Type desc

    case  when还有一种用法,就是直接在数据库中转换,在页面显示别名,

    比如有个字段是type类型,每个值代表不同含义,就可以直接通过case when来显示中文,这种方式比较简便

     select *,type=Case
                WHEN type=1 THEN '学员'
                WHEN type=2 THEN '客户'
                WHEN type=3 THEN '教师'
                ELSE 'null'
               END

    from T_Op_ClassLearnerMapping

    PS,我在园子提的问题,各位大神提供的方式:

    有对数据库很精通,有对三目运算很精通的么?eg: var a=""; var b=a==""?True:False; 我想问一下,在数据库中sql有类似的判断吗?

    酱油兴爷:我记得oracle的。 case when a=b and a is null then 'true' else 'false' end resault.

    路过秋天:有isnull(条件,true则值A,false则值B) 具体去扫一下数据库类型提供什么就用什么

    青 蛙:如果判断是否为空取不同值则有nvl和nvl2两个函数,多个值做相应转换可用decode。比较复杂的再用case when         

    PPS:秋天跟青蛙说的函数我都没用过,所以先记着~~呵呵,不管怎样,还是很谢谢他们的回答      

  • 相关阅读:
    网页版台球小游戏
    代码写响应式时钟效果
    如何使用SVN?
    TP框架---View视图层---模板继承(举例说明)
    ThinkPhp框架:文件上传
    ThinkPhp框架:验证码功能
    ThinkPhp框架:父类及表单验证
    ThinkPhp框架对“数据库”的基本操作
    对thinkphp的命名空间的理解
    控制器操作方法的调用
  • 原文地址:https://www.cnblogs.com/sunny0515/p/3293262.html
Copyright © 2011-2022 走看看