您的位置:首页 > 数据库 > Oracle

oracle数据库使用过程中问题汇总

2016-10-14 16:06 106 查看
1.''和NULL的区别

  1.1 差异比较

      空值具有以下特点:

    * 等价于没有任何值。

    * 与 0、空字符串或空格不同。

    * 在where条件中, Oracle认为结果为NULL的条件为FALSE,带有这样条件的select语句不返回行,并且不返回错误信息。但NULL和FALSE是不同的。

    * 排序时比其他数据都大。

    * 空值不能被索引

  1.2 使用上注意(oracle字段address无论是null还是'',都不能用等号查)

      1.2.1 错误方式

            select count(1) from dual  where null='' or null=null;

      1.2.2 正确方式

            select count(1) from dual  where null is null;

2.特殊函数使用

  2.1 示例

      select 

      nullif(1,1),                      --两个参数相等返回 null,否则,返回第一个参数的值                     

      

      coalesce(null,2,1,3),              --返回第一个非空的值,

      nvl(null,'resultValue'),                         --若第一个参数为空,则返回默认值

      

      nvl2(null,'notNullVal','nullVal'),          --第一个参数为空,则返回第三个参数值,否则返回第二个参数值

      decode(1,1,'equalsNum1',2,'equalsNum2'),--表示第一个参数和其后面的每组条件(两个参数为一组,1表示比较值,'equalsNum1'表示匹配比较值之后的返回值)

      

      greatest(1,2,3) maxOne,                   --返回三个中的最大值

      

      least(1,2,3) minOne,                          --返回三个数字之间的最小值,

      lpad('func',15,'='),                                --左添充,在字符串'func'的左边添加 10 个 '='(15表示结果字符串的总长度)

      

      rpad('func',15,'-')                                  --右填充,在字符串'func'的右边边添加 10 个 '-'(15表示结果字符串的总长度)

      

      from dual;

  
  2.2 使用用途

      a. 空值判断取值;

      b. 比较大小取值;

      c. 特殊格式输出;

     以上内容为个人使用oracle遇到的疑惑和特殊函数用法汇总,欢迎大家探讨和补充,一起学习,共同成长~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle NULL 函数