字符函数
SELECT UPPER('hello WORLD') FROM DUAL; //将小写字母变为大写字母
SELECT LOWER('hello WORLD') FROM DUAL; //将大写字母变为小心字母
SELECT INITCAP('hello WORLD') FROM DUAL; //将字符串的首字母大写
SELECT CONCAT('hello',' world') FROM DUAL; //字符串拼接,还有一种拼接方式就是用“||”拼接字符串
SELECT SUBSTR('hello',1,3) 截取字符串, LENGTH('hello') 字符串长度, REPLACE('hello','l','x') 字符串替换 FROM DUAL;
substr()详解:
格式一:substr('字符串',begin_index,sub_length) // begin_index 子串截取的启始位置(0和1其效果是一样的,值是负数意思是倒着进行),sub_length 子串的长度
格式二:substr('字符串',begin_index) //begin_index 子串截取的启始位置(0和1其效果是一样的,值是负数意思是倒着进行)
SELECT LOWER('hello WORLD') FROM DUAL; //将大写字母变为小心字母
SELECT INITCAP('hello WORLD') FROM DUAL; //将字符串的首字母大写
SELECT CONCAT('hello',' world') FROM DUAL; //字符串拼接,还有一种拼接方式就是用“||”拼接字符串
SELECT SUBSTR('hello',1,3) 截取字符串, LENGTH('hello') 字符串长度, REPLACE('hello','l','x') 字符串替换 FROM DUAL;
substr()详解:
格式一:substr('字符串',begin_index,sub_length) // begin_index 子串截取的启始位置(0和1其效果是一样的,值是负数意思是倒着进行),sub_length 子串的长度
格式二:substr('字符串',begin_index) //begin_index 子串截取的启始位置(0和1其效果是一样的,值是负数意思是倒着进行)
日期函数
日期操作规律:日期 - 数字 = 日期、 日期 + 数字 =日期、 日期 - 日期 = 数字
months_between(date1,date2) : 求日期date1和date2之间月份间隔数(date1-date2)
add_months(date,add_num) :求date加上add_num(指定的月份数字)后的日期
next_day(date,week) : 求date(日期)后的下一个week(星期几)的日期,week[1~7 | Monday~Sunday | 星期一~星期日] , 1==星期日,2==星期一
last_day(date) : 求date(日期)所在月的最后一天的日期
add_months(date,add_num) :求date加上add_num(指定的月份数字)后的日期
next_day(date,week) : 求date(日期)后的下一个week(星期几)的日期,week[1~7 | Monday~Sunday | 星期一~星期日] , 1==星期日,2==星期一
last_day(date) : 求date(日期)所在月的最后一天的日期
通用函数
nvl(column,replace_value) : 如果column is null 则将其值当作 replace_value来处理
例如:select empno,(sal+nvl(comm,0))*12 from emp; //如果comm(奖金数) is null就当作0来计算
decode(expression,case1,content1,case2,content2 .....):类似switch语句,expression中的值匹配到caseX就当作contentX来处理
switch(expression){
case1:content1;
case2:content2;
.....
}
例如:select empno 雇员编号,ename 雇员姓名,decode(job,'coder','程序员','manager','经理','dba','数据库管理员') 职位 from emp;
组函数
count()求全部记录数
max()求最大记录数
min()求最小记录数
avg()求平均
sum()求和