1.1数值类型函数 <a id="11"> </a>
-
ABS(N)
绝对值 <a id="111"></a> -
MOD(n1,n2)
余数 <a id="112"></a> -
SIGN(n)
如果n是正数1 0 返回0 负数-1 n>=0 或者是n=NAN的时候返回1<a id="113"></a> -
三角函数
-
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的平方根<a id="114"></a> -
POWER(n1,n2)
指数<a id="115"></a> -
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 字符型函数<a id="12"></a>
-
CHR(n)
给定的ASCII码装维字符CHR(65) A -
ASCII(char)
ASCII('ADB') 65 -
LENGTH(char)
长度 LENGTH('ABCDE我FGHI')10 <a id="121"></a> -
SUBSTR(char,position[,substring_length])
字符为单位<a id="122"></a>-
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)
字母大写<a id="123"></a> -
LOWER(char)
指定参数转换成小写的<a id="124"></a> -
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,那就删除前后的这个字段,第一个可选字段表示删除的是前边的字段还是后边的字段还是前后都删除<a id="125"></a> -
RTRIM(char[,set])
删除char中右边的set字符,如果没有设置set那么就删除空格 -
LTRIM
同RTRIM
不过删除的是左边的
1.3 日期型的函数<a id="13"></a>
-
SYSDATE
系统日期<a id="131"></a> -
SYSTIMESTAMP
函数返回系统时间,详细的时区信息精确到微妙 -
select dbtimezone from dual
数据库时区 -
ADD_MONTHS(date,integer)
月份的加减,包括为日期加上指定月份函数<a id="132"></a> -
LAST_DAY(date)
返回指定日期的对应月份的最后一天的函数<a id="133"></a> -
NEXT_DAY(date,char)
返回当前日期向后一周的char的对应日期,char表示星期几,char可以是星期一<a id="134"></a> -
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将被处理到最近的一天<a id="135"></a> -
TRUNC(date[,fmt])
将date截取到fmt指定的形式<a id="136"></a>
1.4转换函数<a id="14"></a>
-
ASCII("这是测试")
\8FD9\662F。。。。 -
BIN_TO_NUM
二进制转化为对应的十进制 -
CAST(expr as type_name)
将expr参数转化成type_name类型的参数<a id="141"></a> -
CHARTOROWID(char)
字符串和rowid类型之间相互转化 -
ROWIDTOCHAR(ROWID)
原理同上 -
TO_CHAR(NUMBER)
数值转化成字符型数据<a id="142"></a>
-select to_char(12.89,'99.99'),to_char(12.89) from dual
12.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')
<a id="143"></a> -
to_number()
字符串转数字函数to_number('12.123','99.99')
12.12<a id="144"></a>
1.5 NULL函数<a id="15"></a>
-
COALESCE(A,B,C)
返回第一个不是null的表达式COALESCE(NULL,'123',NULL)`123<a id="151"></a> -
LNNVL
函数,得到除了condition要求条件之外的数据,包括NULL的条件,通常用于where条件中。-
SELECT * FROM PRODUCTINFO WHERE LNNVL(QUANTITY>=70)
得到小于70的所有的数据
-
-
NVL(expr1,expr2)
替换NULL值,如果expr1是NULL的话那就返回expr2的值,两个参数类型要一致,<a id="152"></a> -
NVL2(expr1,expr2,expr3)
如果expr1是空的话,就返回expr3 如果不为空的话就返回expr2<a id="153"></a>
1.6 集合函数<a id="16"></a>
-
AVG([distinct|all] expr)
求指定列的平均值,表示某组的平均值 distinct去除重复的值<a id="161"></a> -
COUNT(*|[distinct][all]expr)
函数,用来计算记录的树龄或者某个列的个数<a id="162"></a> -
MAX([distinct|all] expr)
求最大值<a id="163"></a> -
MIN([distinct|all] expr)
求最小值的函数<a id="164"></a> -
SUM([distinct|all] expr)
求和函数<a id="165"></a>
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就显示充足,要不就显示不足
-
网友评论