Oracle常用函数

1. 查询先后顺序
    a. 执行from
    b. 执行where
    c. 执行select
   所以,from 表名 as 表别名 可以在where中使用,而且通常也这么做
    但是select 列名 as 列别名 不可以在where中使用,如果必须使用列别名,需要嵌套一个内联视图

2. 使用concat函数连接来自多个列的值

    在DB2、Oracle中,用“||”是concat的简写

    在SQL Server 中“+” 是concat的简写

3. CASE

        WHEN ... THEN ...

        WHEN ... THEN ...

        ELSE ...

    AS 列别名

    如果没有ELSE,对不满足条件的行,CASE表达式返回NULL

4. 随即返回N条记录

      SELECT * from ( select * from emp order by dbms_random.value() ) where rownum < N

5. 将空值转为实际值

        nvl('空值','实际值')

        coalesce('...','...','...') 返回第一个不是null的值,如果全部为null则返回null

6. replace('str', 'search_str'  [,'replace_str'] )表示在str中查到的search_str全部(整体)用replace_str替换,如果str中不包含search_str,则原样输出str,如果不指定replace_str、replace_str为null、‘空’,则将str 中的search_str子串删除

7. translate('str','sub','re')的参数个数必须为3个

    如: translate('abcd', 'ab' , '12' )    -->  12cd

            translate('abcd', 'ab' , '123' )    --> 12cd

           translate('abcd', 'a' , '123' )    -->  1bcd

          translate('abcd', 'abc' , '12' )    --> 12d

          translate('abcd', '' , '12' )    --> 没有

          translate('abcd', 'ab' , '' )    --> 没有

8. 字段排序的时,默认null为最大,可以在(单个)排序字段之后使用null last或者null first ,指定null的排序位置

相关推荐