【2017年整理】Oracle中的单值函数.doc
文本预览下载声明
Oracle中的单值函数
Oracle的函数
Oracle函数可以分为单值函数和分组函数两大类,单值函数又分为字符函数、日期和时间函数、数字函数、转换函数和混合函数:分组函数右count、max、min、avg、sum,都可以和group by 搭配使用。
单值函数
字符函数
字符串连接函数
问题:把员工的姓名和工作类型连在一起使用-分隔
函数:concat(字符串1,字符串2)
select concat(concat(ename,-),job) from emp;
扩展点:字符串连接符号 ||
select ename || - || job from emp;
右对齐函数
问题:将员工的姓名右对齐显示
函数:lpad(待处理的字符串,预留位置,填充符号)
select lpad(ename,10, ) from emp;
字符串截取函数
问题:截取员工姓名的前3个字符和字符4以后的内容显示
函数:substr(字符串,起始位置,截取的个数)
substr(字符串,起始位置) --默认截取到最后
select ename, substr(ename,1,3),substr(ename,4) from emp;
字符查找函数
问题:字母T在员工姓名中第一次出现和第二次出现的位置
函数:instr(字符串,查找的字符,查找的起始位置,出现的次数)
select ename, instr(ename,T,1,1) as A, instr(ename,T,1,2) as B from emp;
扩展:员工姓名中不含M的员工
select ename from emp where instr(ename,M,1,1)=0
首字母大写函数
问题:员工姓名首字母大写显示
函数:initcap(字符串)
select initcap(ename) from emp;
小/大写函数
问题:将员工姓名大写转换
函数:upper(字符串)/lower(字符串)
select upper(ename) , lower(ename) from emp;
字符串替换函数
问题:将姓名中的M全部替换成*显示
函数:replace(字符串,带替换的字符,替换后的字符)
select replace(ename,M,*) from emp;
字符串长度函数
问题:找出姓名长度大于5的员工姓名
函数:length(字符串)
select ename from emp where length(ename)5;
日期函数
系统时间
问题:返回系统的当前时间
函数:sysdate
说明:1、函数没有“( )”
2、dual 是一张无意义的表,在Oracle专门用于函数的测试
select sysdate from dual;
使用一个to_char,转换函数类型
将时间类型转成字符类型
函数:to_char(时间数据,格式)
select to_char(sysdate,yyyy-mm-dd hh:mi:ss) from dual;
格式:yyyy 年
mm 月
dd 日期
d 一周中的第几天
ddd 一年中的第几天
day 周
month 月份
hh24 24小时制
日期修改函数
问题:将系统时间添加2个月显示
函数:add_months(时间数据,添加的月份)
select add_months(sysdate,2) from dual;
日期差函数
问题:显示员工入职时间的月份统计
函数:mon
显示全部