主要是:
SQL> select 1/100 from dual;     1/100
----------
       .01目前歷時: 00:00:00.25

解决方案 »

  1.   

    任何數值與null的計算結果都是null!執行順序是從先||再計算+
      

  2.   

    oracle按什么顺序解析的这个表达式呢?
      

  3.   

    Select  (100 || null) || (1/null) || ((1/100)+1) from dual;
      

  4.   

    Select  ((100 || null) || (1/null) || (1/100))+1 from dual;
      

  5.   

    这说明问题: oracle的文档是错的.
    oracle的文档里写所有的算术运算的优先级都高于字符串连接.按照它的说法,执行顺序应该是:Select  100 || null || (1/null) || ((1/100)+1) from dual;这个的结果是:1001.1
      

  6.   

    Select  100 || null || 1/null || 1/100+1 from dual;
    执行顺序:
    1/null   
    1/100
    转换为 100 || null || null || 0.01 +1  此时运算符优先级相同,从左往右依次计算,最后得到100.01+1 = 101.01