Oracle的 NULL 与 空字符串''
刚开始在Oralce 数据库里写SQL时,null 和 空字符串'' 经常搞混淆,现在简单描述下这两种类型的区别与联系。
NULL
数据库的一种特殊数据类型,代表是未知的、不确定的,有无数种可能性。
NULL 只能通过 is null,is not null 判断。
NULL 与+、-、*、/ 运算事结果都是NULL,与字符串拼接时||,可以说视为''。
所以,列之间运算时需要使用nvl() 函数,这样才能保证结果的正确性。
          select 'X'         as c1,
                      null       as c2,
                      null + 1 as c3,
                      null -1   as c4,
                      null *1   as c5,
                      null /1    as c6,
null||'a' as c7
from dual
          
空字符串‘’
数据库的 字符类型(varchar2 ),Oracle数据库是不存储这种值的。
空字符串'' 是NULL 字符类型的表现形式。
          select *
            from dual
         where 1=1
             and '' is null ;
         
’’和NULL有联系有区别,
对于NULL来说,表示了各种数据类型的NULL值。
对于空字符串’’来说,表现出了字符类型的特点,是NULL 字符类型的表现形式。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号