入门精通4-函数

学习Oracle的字符串函数、以及一些其他函数

字符串函数

将字符转换为ASCII码,如果是字符串则只会转换左起第一个字符

1
2
3
SELECT ASCII('A') BIG_A, ASCII('a') SMALL_A, ASCII('am')
FROM dual

将数字编码为字符

1
2
3
SELECT CHR(65) CHR_65
FROM DUAL --数字转换以ASCII反向编码为字符

字符串连接

1
2
3
SELECT ENAME||COMM STR1,CONCAT(ENAME,COMM) STR2
FROM EMP --连接字符串

字符串中每个单词的第一个字符大写

1
2
3
SELECT INITCAP('to be or not to be,this is problem') str1
FROM DUAL --单词的首字母大写

查找字符在字符串中的位置

1
2
3
SELECT INSTR('MISSISSIPPI','I',3,2)
FROM dual -- ‘I’在‘MISSIPPI’左边第3位后第2次出现的位置

1
2
3
SELECT INSTR('MISSISSIPPI','S',-5,3)
FROM dual -- ‘I’在‘MISSIPPI’右边第5位后第3次出现的位置

字符串长度

1
2
3
SELECT LENGTH('i am what i am') str_len
FROM dual --字符长度

大小写转换

1
2
SELECT LOWER('AM'),UPPER('am') FROM dual

从左边开始查找并删除符合条件字符串

1
2
3
SELECT LTRIM('Mississippi','Mi'),LTRIM('Mississippi','ip')
FROM DUAL --从左边开始比较,如相同则去掉

自定字符串替换

1
2
3
SELECT REPLACE('13035532322','3553','****')
FROM dual --替换字符串

截取字符串

1
2
SELECT SUBSTR('13035532322',4),SUBSTR('13035532322',1,3)
FROM dual --截取字符串

数值函数

符号判断函数

1
2
SELECT SIGN(12),SIGN(-99),SIGN(0) FROM dual;  --判断参数正负,正数返回1,负数返回-1,零则返回0

向下取整函数

1
2
SELECT FLOOR(-0.1),FLOOR(-1),FLOOR(0.99) FROM dual;  --返回小于等于参数的最大整数

绝对值函数

1
SELECT ABS(0),ABS(-34),ABS(277) FROM DUAL;  --返回该参数的绝对值

日期函数

1
2
SELECT ADD_MONTHS(SYSDATE,3.3) MON3,SYSDATE FROM dual;  --返回系统日期后3月的日期,小数部分会被舍去

1
2
SELECT LAST_DAY(SYSDATE) FROM dual;  --返回本月最后一天

转换函数

字符串转换为日期

1
SELECT TO_DATE('2021-05-06','YYYY-MM-DD') FROM dual;  --将字符串格式转为日期格式

将日期或数值转换为字符串

1
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MM') AS DD,TO_CHAR(13556.998) AS NUM FROM DUAL; --将日期和数值转换为字符串

字符串转换为数值

1
SELECT TO_NUMBER('13556.998') AS NUM2 FROM DUAL;  --字符串转换为数值