Oracle中常用的函数详解
字符函数
1: ASCII(‘A’) 返回对应ASCII码表中的位置
SELECT ASCII('A') FROM DUAL
效果图如下:
2:concat(‘HELLO’,‘oracle’) 字符串拼接或’HELLO’’,ORACLE’
SELECT CONCAT('Hello',',Oracle') FROM DUAL
效果图如下:
3:LENGTH(‘HE LLO’) 返回字符串长度
SELECT LENGTH('HELLO') FROM DUAL
效果图如下:
4:instr(‘hello oracle’,‘or’) 返回or 在 hello oracle 中出现的位置,索引从1开始
SELECT INSTR('HELLO ORACLE','OR')FROM DUAL
效果图如下:
5:LOWER(‘HELLO’) 返回小写字符串
SELECT LOWER('HELLO') FROM DUAL
效果图如下:
6:UPPER(‘hello’) 返回大写字符串
SELECT UPPER('hello') FROM DUAL
效果图如下:
7:LTRIM(‘QWHELLO’,‘QW’) 截取字符串QWHELLO 中的QW,需注意只能截取以QW开头的字符串
SELECT LTRIM('QWHELLO','QW') FROM DUAL
效果图如下:
8:POWER(X,Y) X的Y次幂
SELECT POWER(6,2)FROM DUAL
效果图如下:
9:RTRIM(‘HELLOZX’,‘ZX’ 截取字符串HELLOZX 中的ZX,需注意只能截取以ZX结尾的字符串
SELECT RTRIM('HELLOZX','ZX')FROM DUAL
效果图如下:
10:TRIM(’-’ FROM ‘-HELLO-’)截取字符串-HELLO-'中前后的-,只能截取前后(注意:上面的三个函数比较类似,如果不填入第二个参数的话,默认是截取空格)
SELECT TRIM('-'FROM'-HELLO-WORD-')FROM DUAL
效果图如下:
11:REPLACE(‘ABCG’,‘G’,‘DEF’) 字符串替换,把字符串ABCG中的G换成DEF(注意:如果ABCG中有多个G 则会多次替换)
SELECT REPLACE('ABCG','G','DEF')FROM DUAL
效果图如下:
12:SUBSTR(‘ABCDEFGH’,2,6) 从字符串abcde中的第二位开始显示,显示6位
SELECT SUBSTR('ABCDEFGH',2,6)FROM DUAL
效果图如下:
数字函数
1:ABS(X) 显示X的绝对值
SELECT ABS(-81) FROM DUAL
效果图如下:
2:ACOS(X)显示X的反余弦
SELECT ACOS(0.5) FROM DUAL
效果图如下:
3:COS(X)显示X的余弦
SELECT COS(0.9)FROM DUAL
效果图如下:
4:CEIL(X)大于或等于X的最小值
SELECT CEIL(3.4)FROM DUAL
效果图如下:
5:FLOOR(X) 小于或等于X的最大值
SELECT FLOOR(3.6) FROM DUAL
效果图如下:
6:LOG(X,Y)X为低Y的对数
SELECT LOG(100,1000)FROM DUAL
效果图如下:
7:MOD(X,Y) 类似与取于,X除以Y之后的余数
SELECT MOD(3,2) FROM DUAL
效果图如下:
8:POWER(X,Y) X的Y次幂
SELECT POWER(2,3)FROM DUAL
效果图如下:
9:ROUND(X,[Y]) 把数字X在Y的位置上四舍五入
SELECT ROUND(11.11,-1) FROM DUAL
效果图如下:
10:SQRT(X) X的平方根
SELECT SQRT(6)FROM DUAL
效果图如下:
11:TRUNC(X,[Y]) 数字X在Y的位置上截断,不进行四舍五入,y为整数代表小数点往右,y为负数代表小数点往左
SELECT TRUNC(1.12345,2)FROM DUAL
效果图如下:
转换函数
**1:TO_CHAR(SYSDATE) 获取当前年月日 **
SELECT TO_CHAR(SYSDATE)FROM DUAL
效果图如下:
2:TO_CHAR(SYSDATE,‘YYYY"年"mm"月"dd"日"’)获取当前年月日
SELECT TO_CHAR(SYSDATE,'YYYY"年"mm"月"dd"日"')FROM DUAL
效果图如下:
3:TO_CHAR(SYSDATE,‘yyyy"年"mm"月"dd"日" HH12:MI:SS’) 获取当前年月日时分秒(小时是12小时制)
SELECT TO_CHAR(SYSDATE,'YYYY"年"mm"月"dd"日" HH12:MI:SS')FROM DUAL
效果图如下:
4:TO_CHAR(SYSDATE,‘yyyy"年"mm"月"dd"日" HH24:MI:SS’) 获取当前年月日时分秒(小时是24小时制)
SELECT TO_CHAR(SYSDATE,'YYYY"年"mm"月"dd"日" HH24:MI:SS')FROM DUAL
效果图如下:
5:TO_DATE(‘1990-12-12 15:24:36’,‘yyyy-mm-dd HH24:MI:SS’)
SELECT TO_DATE('1990-12-12 15:24:36','YYYY-MM-DD HH24:MI:SS')FROM DUAL
效果图如下:
日期函数
1:ADD_MONTHS(SYSDATE,5)在SYSDATE上增加5月(就是当前时间增加5个月)
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL
效果图如下:
2:LAST_DAY(SYSDATE) 返回当前月份的最后一天
SELECT LAST_DAY(SYSDATE)FROM DUAL
效果图如下:
3:months_between(ADD_MONTHS(SYSDATE,5),SYSDATE) 返回两个日期相差的月份
SELECT MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,6),SYSDATE) FROM DUAL
效果图如下:
4:NEXT_DAY(SYSDATE,1) 返回下个星期的星期几,注意国外日期
SELECT NEXT_DAY(SYSDATE,3) FROM DUAL
效果图如下:
聚合函数(可以对多行进行操作,返回一个结果集例如 sum())
1:avg()平均数
SELECT AVG(SAL) FROM EMP
效果图如下:
2:sum()求和
SELECT SUM(SAL) FROM EMP
效果图如下:
3:min()最小值
SELECT MIN(SAL)FROM EMP
效果图如下:
4:max()最大值
SELECT MAX(SAL)FROM EMP
效果图如下:
5:count()总数SELECT COUNT(*) FROM EMP
效果图如下: