我可以: 邀请好友来看>>
ZOL星空(中国) > 技术星空(中国) > Oracle星空(中国) > Oracle中的单值函数(一)
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

Oracle中的单值函数(一)

53浏览 / 0回复

zrzy_etc

zrzy_etc

0
精华
5
帖子

等  级:Lv.1
经  验:47
  • Z金豆: 0

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:北京
  • 注  册:2013-03-19
  • 登  录:2013-08-06
发表于 2013-08-07 09:53:45
电梯直达 确定
楼主

Oracle的函数

              Oracle函数可以分为单值函数和分组函数两大类,单值函数又分为字符函数、日期和时间函数、数字函数、转换函数和混合函数:分组函数右countmaxminavgsum,都可以和group by 搭配使用。

        

         单值函数

1、  字符函数

l  字符串连接函数

         问题:把员工的姓名和工作类型连在一起使用"-"分隔

         函数:concat(字符串1,字符串2)

select concat(concat(ename,'-'),job) from emp;

              扩展点:字符串连接符号 " || "

select ename || '-' || job from emp;

         

l  右对齐函数

         问题:将员工的姓名右对齐显示

         函数:lpad(待处理的字符串,预留位置,填充符号)  

select lpad(ename,10,' ') from emp;

        

l  字符串截取函数

         问题:截取员工姓名的前3个字符和字符4以后的内容显示

         函数:substr(字符串,起始位置,截取的个数)

               substr(字符串,起始位置)  --默认截取到最后

select ename, substr(ename,1,3),substr(ename,4) from emp;

        

l  字符查找函数

         问题:字母'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

         

l  首字母大写函数

         问题:员工姓名首字母大写显示

         函数:initcap(字符串)

select initcap(ename) from emp;

        

l  /大写函数

         问题:将员工姓名大写转换

         函数:upper(字符串)/lower(字符串)

select upper(ename) , lower(ename) from emp;

        

l  字符串替换函数

         问题:将姓名中的M全部替换成'*'显示

         函数:replace(字符串,带替换的字符,替换后的字符)

select replace(ename,'M','*') from emp;

        

l  字符串长度函数

         问题:找出姓名长度大于5的员工姓名

         函数:length(字符串)

select ename from emp where length(ename)>5;

 

2、  日期函数

l  系统时间

                  问题:返回系统的当前时间

                  函数:sysdate

                  说明:1、函数没有“( )

         2dual 是一张无意义的表,在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小时制

 

l  日期修改函数

                  问题:将系统时间添加2个月显示

                  函数:add_months(时间数据,添加的月份)

select add_months(sysdate,2) from dual;

                             

l  日期差函数

                  问题:显示员工入职时间的月份统计

                  函数:months_between(时间1,时间2)

select ename,hiredate,months_between(sysdate,hiredate) from emp;

高级模式
星空(中国)精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表