sql常用函数

  1. NVL(EXP1, EXP2)  如果 EXP1 为空,则返回 EXP2 , 否则返回 EXP1
    SELECT NVL('', 'A' ) FROM DUAL
    

      

  2. NVL2(EXP1, EXP2, EXP3)

    如果 exp1 为空,则返回 exp3, 否则返回 exp2 

    SELECT NVL2('','A' ,'B' ) FROM DUAL
    

      

  3. NULLIF(EXP1,EXP2)

    如果 exp1=exp2, 则返回空,否则返回 exp1

    SELECT NULLIF('A','') FROM DUAL
    SELECT NULLIF('','') FROM DUAL

      

  4. ASCII 
    返回与指定的字符对应的十进制数; 
     select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
    
            A         A      ZERO     SPACE 
    --------- --------- --------- --------- 
           65        97        48        32
    

      

  5. CHR 
    给出整数,返回对应的字符; 
    select chr(54740) zhao,chr(65) chr65 from dual;
    
    ZH C 
    -- - 
    赵 A
    

      

  6. CONCAT 
    连接两个字符串; 
     select concat('010-','88888888')||'转23'  高乾竞电话 from dual;
    
    高乾竞电话 
    ---------------- 
    010-88888888转23
    

      

  7. INITCAP 
    返回字符串并将字符串的第一个字母变为大写; 
    select initcap('smith') upp from dual;
    
    UPP 
    ----- 
    Smith
    

      

  8. INSTR(C1,C2,I,J) 
    在一个字符串中搜索指定的字符,返回发现指定的字符的位置; 
    C1    被搜索的字符串 
    C2    希望搜索的字符串 
    I     搜索的开始位置,默认为1 
    J     出现的位置,默认为1( 即第几次出现1,带表第一次出现,2代表第2次出现,以下例子如果是1,则返回的结果应该是2,因为前边还有个符合的 ra 就是在 oracle这个字符串中 ) 
    select instr('oracle traning','ra',1,2) instring from dual;
    
    INSTRING 
    --------- 
            9
    

      

  9. LENGTH 
    返回字符串的长度; 
    select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;
    
    NAME   LENGTH(NAME) ADDR             LENGTH(ADDR)       SAL LENGTH(TO_CHAR(SAL)) 
    ------ ------------ ---------------- ------------ --------- -------------------- 
    高乾竞            3 北京市海锭区                6   9999.99                    7
    

      

  10. RPAD和LPAD(粘贴字符) 
    RPAD  在列的右边粘贴字符 
    LPAD  在列的左边粘贴字符 
    select lpad(rpad('gao',10,'*'),17,'*')from dual;
    *******gao******* 
    

      

  11. LTRIM和RTRIM 
    LTRIM  删除左边出现的字符串 
    RTRIM  删除右边出现的字符串 
    select ltrim(rtrim('   gao qian jing   ',' '),' ') from dual;
    
    LTRIM(RTRIM(' 
    ------------- 
    gao qian jing
    

      

  12. SUBSTR(string,start,count) 
    取子字符串,从start开始,取count个 
    select substr('13088888888',3,8) from dual;
    
    SUBSTR(' 
    -------- 
    08888888
    

      

  13. REPLACE('string','s1','s2') 
    string   希望被替换的字符或变量 
    s1       被替换的字符串 
    s2       要替换的字符串 
    select replace('he love you','he','i') from dual;
    
    REPLACE('H 
    ---------- 
    i love you
    

      

  14. TRIM('s' from 'string') 
    LEADING   剪掉前面的字符 
    TRAILING  剪掉后面的字符 
    如果不指定,默认为空格符
  15. ABS 
    返回指定值的绝对值 
    select abs(100),abs(-100) from dual;
    
    ABS(100) ABS(-100) 
    --------- --------- 
          100       100
    
    

      

  16. ACOS 
    给出反余弦的值 
  17. ASIN 
    给出反正弦的值 
  18. ATAN 
    返回一个数字的反正切值 
  19. CEIL 
    返回大于或等于给出数字的最小整数
    select ceil(3.1415927) from dual;
    
    CEIL(3.1415927) 
    --------------- 
                  4
    

      

  20. COS 
    返回一个给定数字的余弦 
  21. COSH 
    返回一个数字反余弦值 
  22. .EXP 
    返回一个数字e的n次方根
     select exp(2),exp(1) from dual;
    
       EXP(2)    EXP(1) 
    --------- --------- 
    7.3890561 2.7182818
    

      

  23. FLOOR 
    对给定的数字取整数 
    select floor(2345.67) from dual;
    
    FLOOR(2345.67) 
    -------------- 
              2345
    

      

  24. ADD_MONTHS 
    增加或减去月份
    select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;
    
    TO_CHA 
    ------ 
    200002 
    

      

  25. MONTHS_BETWEEN(date2,date1) 
    给出date2-date1的月份 个数
    select months_between('19-12月-1999','19-3月-1999') mon_between from dual;
    
    MON_BETWEEN 
    ----------- 
              9 
    

      

  26. TO_CHAR(date,'format') 
    select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
    
    TO_CHAR(SYSDATE,'YY 
    ------------------- 
    2004/05/09 21:14:41
    

      

  27. TO_DATE(string,'format') 
    将字符串转化为ORACLE中的一个日期
posted @ 2020-11-09 11:11  fazzer  阅读(85)  评论(0)    收藏  举报