oracle 常用函数示例

150 阅读1分钟
1.decode 解码函数
    SELECT DECODE(DEPARTMENT_ID, 
              10, 'Finance', 
              20, 'Marketing', 
              30, 'Sales', 
              'Unknown') AS Department_Name
    FROM EMPLOYEES;
    
    SELECT DECODE(DEPARTMENT_ID, 
              10, 'Finance', 
              'Unknown') AS Department_Name
    FROM EMPLOYEES;

2.nvl 函数
    select nvl(null,1)
    from dual

3.nvl2 函数
    select nvl2(null,1,0)
    from dual
    如果第一个值不为null,那么取第二个值,为null则取第三个值
    NVL2(expression, value_if_NOT_null, value_if_null)

4.lpad 函数
    ---截断效果(abc)
    select lpad('abcd',3,'#')
    from dual
    
    ---补充效果
    select lpad('abcd',5,'#')
    from dual

5.rpad 函数
    ---截断效果(abc)
    select rpad('abcd',3,'#')
    from dual
    
    ---补充效果
    select rpad('abcd',5,'#')
    from dual
    
6.nullif 函数
    ---相等返回null
    select nullif(1,1)
    from dual
    
    ---不相等返回第一个(2)
    select nullif(2,1)
    from dual 

7.trunc 函数
    ---默认截断至日,最低截断至小时
    --- 2024/6/27 8:53:35 | 2024/6/27 | 2024/1/1 | 2024/6/1
    select sysdate,trunc(sysdate),trunc(sysdate,'yyyy')trunc(sysdate,'MM')
    from dual
    
8.interval
    ---操作时间,单位 year month day hour min second 
    --- 2024/6/28 8:59:03 | 2024/6/28 10:59:03
    select  sysdate+ interval '1' day,
            sysdate+ interval '1' day + interval    '2' hour
    from dual
    
9.coalesce
    ---返回首个非null值
    SELECT COALESCE(PHONE_HOME, PHONE_MOBILE, PHONE_WORK) AS PHONE
    FROM EMPLOYEES;