文章目录
一、数据类型函数 1、数学函数 1)绝对值 2)向上取整 3)向下取整 4)四舍五入 5)截取 6)幂运算 7)平方根 8)取余 9)判断正负数
2、字符串函数 1)字符串长度 2)字符串拼接 3)指定字符在字符串左边填充 4)指定字符在字符串右边填充 5)转大小写 6)字符串第1位变大写,其它变小写 7)去除字符串两端内容 8)去除字符串左侧内容 9)去除字符串右侧内容 10)截取字符串 11)获取字串在字符串的位置 12)字符串反转 13)替换
3、日期时间函数 1)当前日期时间 2)提取 3)运算 4)格式化 5)最早/最晚的日期 6)本月最后一天的此刻 7)两个日期相差的月数 8)下一个周几的日期 9)四舍五入 10)TRUNC
4、其它
二、聚合函数 1、平均值 2、最大值 3、最小值 4、求和 5、统计数量
三、其它 1、NVL 2、NVL2 3、NULLIF 4、DECODE
一、数据类型函数
1、数学函数
1)绝对值
ABS( num)
2)向上取整
CEIL( 2.1 )
3)向下取整
FLOOR( 2.6 )
4)四舍五入
ROUND ( value , precision )
ROUND ( 2.66 , 1 )
ROUND ( 2.66 , 0 )
5)截取
TRUNC( value , decimals)
TRUNC( 123.5678 , 1 )
TRUNC( 123.5678 , 0 )
TRUNC( 123.5678 , - 1 )
TRUNC( 123.5678 , - 2 )
6)幂运算
POWER( value , exponent)
POWER( 3 , 2 )
7)平方根
SQRT( 9 )
8)取余
MOD ( 10 , 3 )
9)判断正负数
SIGN( NUM)
2、字符串函数
1)字符串长度
LENGTH( 'abc' )
LENGTHB( '中国' )
2)字符串拼接
CONCAT( 'ab' , 'cd' )
'ab' || 'cd'
3)指定字符在字符串左边填充
LPAD( 'abc' , 5 , '+' )
4)指定字符在字符串右边填充
RPAD( 'abc' , 5 , '+' )
5)转大小写
UPPER( 'abc' )
LOWER( 'ABc' )
6)字符串第1位变大写,其它变小写
INITCAP( 'aBc' )
7)去除字符串两端内容
TRIM( ' abc ' )
TRIM( 'a' from 'abc' )
8)去除字符串左侧内容
LTRIM( ' abc' )
LTRIM( 'aba' , 'a' )
LTRIM( 'ba' , 'a' )
9)去除字符串右侧内容
RTRIM( 'abc ' )
RTRIM( 'aba' , 'a' )
RTRIM( 'bc' , 'a' )
10)截取字符串
SUBSTR( value , start , length)
SUBSTR( 'abcd' , 1 , 2 )
SUBSTR( 'abcd' , 2 , 2 )
SUBSTR( 'abcd' , 2 )
SUBSTR( 'abcd' , - 2 , 2 )
11)获取字串在字符串的位置
INSTR( value , 子串, 开始位置, 第几次出现)
INSTR( 'abcdab' , 'a' )
INSTR( 'abcd' , 'e' )
INSTR( 'abcab' , 'a' , 1 , 2 )
12)字符串反转
REVERSE( 'abc' )
13)替换
REPLACE ( value , 需要替换的字符串, 替换成的字符串)
REPLACE ( 'abbab' , 'a' , 'b' )
REPLACE ( 'abab' , 'ab' , 'b' )
REGEXP_REPLACE( value , 正则表达式, 替换成的字符串)
REGEXP_REPLACE( '12b' , '[0-9]+' , 'b' )
3、日期时间函数
1)当前日期时间
SYSDATE
SYSTIMESTAMP
CURRENT_DATE
2)提取
EXTRACT( YEAR FROM 日期)
EXTRACT( MONTH FROM 日期)
EXTRACT( DAY FROM 日期)
EXTRACT( HOUR FROM 日期)
EXTRACT( MINUTE FROM 日期)
EXTRACT( SECOND FROM 日期)
3)运算
ADD_MONTHS( 日期时间, count)
date1 - date2
4)格式化
format 说明 YYYY 4位年 MM 2位月 MONTH 英文月:JUNE MON 月的3字母缩写:JUN DD 月中天 DAY 星期几:Sunday DY 星期几英文3字母缩写:SUN HH12 12小时制 HH24 24小时制 MI 分钟 SS 秒 AM或PM 该日期是上午则会显示AM,下午则显示PM
TO_CHAR( 日期, format)
TO_CHAR( SYSDATE, 'YYYY-MM-DD HH24:MI:SS' )
TO_CHAR( SYSDATE, 'AM-YYYY-MM-DD HH24:MI:SS' )
TO_DATE( 字符串, format)
TO_DATE( '2019-12-05 17:26:02' , 'YYYY-MM-DD HH24:MI:SS' )
5)最早/最晚的日期
LEAST( date1, date2, . . . . . . )
GREATEST( date1, date2, . . . . . . )
6)本月最后一天的此刻
LAST_DAY( SYSDATE)
7)两个日期相差的月数
MONTHS_BETWEEN( date1, date2)
8)下一个周几的日期
NEXT_DAY( 日期, 星期几)
NEXT_DAY( SYSDATE, 2 )
9)四舍五入
ROUND ( SYSDATE, 'MONTH' )
10)TRUNC
TRUNC( SYSDATE, 'IW' )
TRUNC( SYSDATE, 'IW' ) + 6
TRUNC( SYSDATE, 'MONTH' )
TRUNC( LAST_DAY( SYSDATE) )
TRUNC( SYSDATE, 'Q' )
TRUNC( SYSDATE, 'YEAR' )
4、其它
1)转换
TO_CHAR( 123.12 , '000.00' )
TO_CHAR( 123.12 , '0000.000' )
TO_CHAR( 100100.12 , '$000,000.00' )
TO_NUMBER( value , format)
TO_NUMBER( '12345' )
TO_NUMBER( '$123,456.12' , '$999,999.99' )
CAST( value AS 数据类型)
CAST( '123' AS NUMBER)
CAST( '123.56' AS NUMBER)
CAST( '123.56' AS NUMBER( 4 , 1 ) )
CAST( '123.56' AS INTEGER )
二、聚合函数
1、平均值
AVG ( column )
SELECT AVG ( AGE) FROM T_USER
2、最大值
MAX ( column )
3、最小值
MIN ( column )
4、求和
SUM ( colnum)
SUM ( colnum+ column + . . . )
5、统计数量
COUNT ( column )
COUNT ( * )
COUNT ( id)
三、其它
1、NVL
NVL( expression, value )
SELECT NVL( NAME, '未知' ) FROM T_USER;
2、NVL2
NVL2( expression, x, y)
SELECT NVL2( NAME, NAME, '未知' ) FROM T_USER;
3、NULLIF
NULLIF ( x, y)
SELECT NULLIF ( 1 , 0 ) FROM DUAL;
4、DECODE
DECODE( a, b, c, d)