Oracle的单行函数

------------单行函数

--单行函数:处理的是一条数据,结果也是一条

-- 字符函数

selectupper('abc')from dual;

selectlower('ABC')from dual;

 

selectlower(ename)from emp;

 

--字符串的截取 :substr(v1,p1,p2) ,v1:处理的字符串,p1从哪里开始截取,0和1都是从第一个开始截取   ;p2 :截取几个字符串

selectsubstr('hello',0,2)from dual;-- he

selectsubstr('hello',1,2)from dual;-- he

selectsubstr('hello',2,2)from dual;--el

 

--替换字符串

--replace(v1,p1,p2) :v1要处理的字符串,p1:要替换的字符串,p2:替换后的字符串

selectreplace('hello','l','x')from dual;

 

-------------------------------------

--=============数字函数

-- 四舍五入 : round(v1,p1) p1:保留几位小数后数字

selectround(59.661)from dual;--60

selectround(59.661,1)from dual;--59.7

 

--截断:trunc

selecttrunc(59.661)from dual;--59

selecttrunc(59.661,1)from dual;--59.6

 


--============================日期函数

 

--当前时间

selectsysdatefrom dual;

 

--范例:查询雇员的进入公司的周数。

select ename,hiredate,round((sysdate-hiredate)/7,2)from emp;

 

--获得两个时间段中的月数: MONTHS_BETWEEN()

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

 

 

 

--------==========================转换函数

-- to_char

select123as "aaaaaaaaaaaaaaaaaaaa" ,to_char(123)from dual;

--to_number

select'123',to_number('123')from dual;

-- to_date

select'2018-07-06',to_date('2018-07-0618:20:30','yyyy-mm-dd hh24:mi:ss')from dual;

 

--=========================通用函数

--nvl 空值的判断

 

--=========================什么是条件表达式?

/*

if(){

}

else if(){

}

else{

}

 

*/

/*

decode(v1,p1,p2,p3,p4.....pn)

     当v1等于p1的时候,显示p2

     当v1等于p3的时候,显示p4

     。。。。。

     pn 类似  else

 

*/

-- 查询员工表的数据:当部门编号等于10输出“java部门”,当等于20 显示“php部门”,其他就是“总裁办公室”

select empno,ename, deptno,

       decode(deptno,10,'java部门',20,'php部门','总裁办公室')

       as部门

from emp;

 

--可以使用case when来替代上述的

/*

case v1

  when p1 then p2

  when p2 then p3

  else

       pn

  end

 

*/

select empno,ename, deptno,

       case deptno

         when10then'java部门'

         when20then'php部门'

         else'总裁办公室'

       end

       as部门

from emp;



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值