三元运算符 订阅
三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。表达式:“()? :”。()中进行二元运算?在运算,就形成三元运算符 展开全文
三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。表达式:“()? :”。()中进行二元运算?在运算,就形成三元运算符
信息
外文名
Ternary Operator
别    名
三元表达式,条件表达式
中文名
三元运算符
三元运算符格式
如名字表示的三元运算符需要三个操作数。语法为:条件表达式?表达式1:表达式2。说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。
收起全文
精华内容
参与话题
问答
  • 三元运算符

    千次阅读 2016-08-24 23:11:46
    1.突然想到用三元运算符,是因为某天项目代码中有很多地方要进行非空判断赋值,一直if else又觉得很多余,然后就想到了三元运算符。 a.java中的三元运算符 String code = null; String result = code !=null ...

    &.突然想到用三元运算符,是因为某天项目代码中有很多地方要进行非空判断赋值,一直if else又觉得很多余,然后就想到了三元运算符。

    a.java中的三元运算符
    
            String code = null;
            String result = code !=null ? "18":"15";
            System.out.println(result);
            打印结果:15
    
    解释是:如果code不等于空,result="18",否则result="15"
           这里code = null,所以result = "15".
    b.oracle中的三元运算符
    
    1)
    NVL( A, B)
    如果A不为null,返回A的值,
    如果A为null,返回B的值,
    如果A和B都为null,返回null
    
    2)NVL2(A,B,C)这是上一个函数的扩展函数。
    如果A为null,返回C
    如果A不为null,返回B
    

    c .有人又提到decode()这个函数,但是这个函数一般是做定值条件判断

    DECODE(条件f,值1,返回值1,值2,返回值2.....值n,返回值n,default)
    解释下这个函数:
        1)如果条件f = 值1 该函数的结果为 返回值1
        2)如果条件f = 值2 该函数的结果为 返回值2
                    .
                    .
        3)如果所以条件都不满足,该函数的结果为 default(默认值,自己设定)
        4)如果没有设置默认值,返回null

    有人喜欢直接看代码,上代码:

    table:
    name      date
    ------------------
    yang      2016-8-27
    zhang     
    liu
    li
    ------------------
    ------------------
    
    SQL>select name,decode(date,null,"yes","no") time from table
    结果:
    name     time
    ------------------
    yang      no
    zhang     yes
    liu       yes
    li        yes
    ------------------
    ------------------
    
    
    SQL>select name,decode(date,null,"yes") time from table
    结果:
    name     time
    ------------------
    yang      
    zhang     yes
    liu       yes
    li        yes
    ------------------(没有匹配和默认值,就返回空了)

    d.又一说case when可以实现

    CASE WHEN 字段 IN ( 'a', 'b') THEN '第一结果'
    WHEN 字段 IN ('a')       THEN '第二结果'
    ELSE'其他' END
    
    这样写好像也可以,未测试,对case的使用不熟悉。
    提供一下思路,感兴趣的可以自己测试。

    e.到最后发现又是写到oracle的函数去了,所以说如果oracel使用的好,会让开发方便很多。(个人感觉oracel处理业务是会比java代码处理要快很多的。)

    每次写在结尾
    新手作品,不断学习,不断改进。仅供参考。

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 5,940
精华内容 2,376
关键字:

三元运算符