SQL之Oracle内置函数

1.1数值类型函数

  • ABS(N)绝对值

  • MOD(n1,n2)余数

  • SIGN(n) 如果n是正数1 0 返回0 负数-1 n>=0 或者是n=NAN的时候返回1

  • 三角函数

  • COS(n)返回参数n的余弦

  • COSH 双曲余弦值

  • ACOS(n)返回n的反余弦值

  • SIN(n) 返回n的正弦值

  • SINH 双曲正弦值

  • ASIN 反正弦值

  • TAN 正切值

  • TANH 双曲正切

  • ATAN 反正切

  • CEIL(n) 返回指定数值为准整数的函数

    CEIL('-10.2') -10
    CEIL('10.5') -11
    CEIL('-10') -10
    
  • SQRT(n) 返回n的平方根

  • POWER(n1,n2)指数

  • EXP(n) e的n次幂

  • LOG(n1,n2) 该函数可以返回以n1为底n2的对数

  • LN(n)函数,n的自然对数

  • ROUND(n,number)函数

        ROUND(12.723123,5.21) -- `12.72
        ROUND(12.723123,5) -- `13
    
  • TRUNC(n,integer) integer表示的是小数的位数

1.2 字符型函数

  • CHR(n) 给定的ASCII码装维字符CHR(65) A
  • ASCII(char) ASCII('ADB') 65
  • LENGTH(char) 长度 LENGTH('ABCDE我FGHI')10
  • SUBSTR(char,position[,substring_length])字符为单位
    • SUBSTRB 字节为单位
    • SUBSTRC unicode字符为单位
    • SUBSTR2 UCS2代码点为单位
    • SUBSTR4 UCS4代码为单位
    • char原始字符
    • position 开始位置
    • substring_length截取长度
  • CONCAT("wo","叫") 拼接,返回wo叫
  • INSTR(string ,substring[,position[,occurrence]])
    select INSTR ('thsiisa测试 ','测') from DUAL;--11
    
    • position开始搜索的位置
    • occurrence 第几次出现
  • UPPER(char)字母大写
  • LOWER(char)指定参数转换成小写的
  • INITCAP首字母大写
  • REPLACE替换字符串函数REPLACE("THIS IS A TEST ","IS ","RESULT ") 结果是: THIS RESULT A TEST
  • RPAD(expr1,n[,expr2]) 字符串填充函数expr1的右边填充n位expr2如果expr2不存在就是空格
  • LPAD() 字符串填充函数expr1的左边边填充n位expr2如果expr2不存在就是空格
  • TRIM([LEADING|TRAILING|BOTH][trim_character],trim_source)删除前后的空格,一般来说都是专门删除空格的如果设置了trim_character,那就删除前后的这个字段,第一个可选字段表示删除的是前边的字段还是后边的字段还是前后都删除
  • RTRIM(char[,set])删除char中右边的set字符,如果没有设置set那么就删除空格
  • LTRIMRTRIM不过删除的是左边的

1.3 日期型的函数

  • SYSDATE系统日期

  • SYSTIMESTAMP函数返回系统时间,详细的时区信息精确到微妙

  • select dbtimezone from dual数据库时区

  • ADD_MONTHS(date,integer) 月份的加减,包括为日期加上指定月份函数

  • LAST_DAY(date)返回指定日期的对应月份的最后一天的函数

  • NEXT_DAY(date,char)返回当前日期向后一周的char的对应日期,char表示星期几,char可以是星期一

  • current_date会话时区当前的日期

  • extract(datetime)指定的时间当中提取到指定的日期部分

    • extract(year from sysdate)
    • extract(MINUTE FROM TIMESTAMP)
  • MONTH_BETWEEN(date1,date2)返回date1和date2之间的月份数

  • ROUND(date[,fmt])这个函数将date舍入到fmt指定的形式,如果参数fmt被省略date将被处理到最近的一天

  • TRUNC(date[,fmt])将date截取到fmt指定的形式

1.4转换函数

  • ASCII("这是测试") \8FD9\662F。。。。
  • BIN_TO_NUM二进制转化为对应的十进制
  • CAST(expr as type_name) 将expr参数转化成type_name类型的参数
  • CHARTOROWID(char)字符串和rowid类型之间相互转化
  • ROWIDTOCHAR(ROWID)原理同上
  • TO_CHAR(NUMBER)数值转化成字符型数据
    -select to_char(12.89,'99.99'),to_char(12.89) from dual12.9 12.89
  • to_char(date) 日期转字符串
    • select to_char(sysdate,'YYYY-MM-DD') ,to_char(sysdate,'Month','NLS_DATE_LANGUAGE=ENGLISH') FROM DUAL 2019-03-17 March
  • to_date()字符串转日期to_date('2010-10-10','YYYY-MM-DD')
  • to_number() 字符串转数字函数to_number('12.123','99.99')12.12

1.5 NULL函数

  • COALESCE(A,B,C)返回第一个不是null的表达式COALESCE(NULL,'123',NULL)`123
  • LNNVL函数,得到除了condition要求条件之外的数据,包括NULL的条件,通常用于where条件中。
    • SELECT * FROM PRODUCTINFO WHERE LNNVL(QUANTITY>=70)得到小于70的所有的数据
  • NVL(expr1,expr2)替换NULL值,如果expr1是NULL的话那就返回expr2的值,两个参数类型要一致,
  • NVL2(expr1,expr2,expr3) 如果expr1是空的话,就返回expr3 如果不为空的话就返回expr2

1.6 集合函数

  • AVG([distinct|all] expr)求指定列的平均值,表示某组的平均值 distinct去除重复的值
  • COUNT(*|[distinct][all]expr)函数,用来计算记录的树龄或者某个列的个数
  • MAX([distinct|all] expr)求最大值
  • MIN([distinct|all] expr)求最小值的函数
  • SUM([distinct|all] expr) 求和函数

1.7 其他函数

  • USER:返回登录名函数SELECT USER FROM DUAL
  • USERENV(parameter)返回当前回话信息 SELECT USERENV('ISDBA') FROM DUAL查询当前账户是否是DBA
  • SYS_CONTEXT(namespace,parameter)函数
    • select sys_context('userenv','session_user') session_user from dual;得到Oracle已经创建的context,名为USERENV属性的对应值
  • DECODE(expr,search,result[,search1,result1],default)函数 表达式匹配
    • select productname,quantity,decode(sign(quantity-100),1,'充足',-1,'不足',0,'不足') from PRODUCTINFO;如果上边sign(quantity-100)这个表达式的值1就显示充足,要不就显示不足

1.8 总结

  1. 数值类型函数

    • ABS
    • MOD
    • SIGN
    • SQRT
    • POWER
  2. 字符类

    • LENGTH
    • SUBSTR
    • UPPER
    • LOWER
    • TRIM
  3. 日期类型函数

    • SYSDATE
    • ADD_MONTHS
    • LAST_DAY
    • NEXT_DAY
    • ROUND
    • TRUNC
  4. 转换函数

    • CAST
    • TO_CHAR
    • TO_DATE
    • TO_NUMBER
  5. NULL函数

    • COALESCE
    • NVL
    • NVL2
  6. 集合函数

    • AVG
    • COUNT
    • MAX
    • MIN
    • SUM

你可能感兴趣的:(SQL之Oracle内置函数)