Oracle数据库中的函数

--1,字符函数
select lower('AABBcc')from dual;--小写
select upper('aaDDcc')from dual;--大写
select initcap('school')from dual;--首字母大写
select 'a'||'n'||'d' from dual;--链接字符串,可以同时链接很多个
select concat('wu','han')from dual;--链接,只能一次连接两个
select substr('abcdef',1,3)from dual;--从下表一开始取三个字符组成子字符串
select length('qwerty')from dual;--长度
select instr('qwert','er')from dual;--搜索字符串的位置
select lpad('1',3,'0')from dual;--左边补齐到 N个字符长度
select rpad('1',3,'0')from dual;--右边补齐到 N个字符长度
select trim(' abc ')from dual;--删除两边的空白
select ltrim(' abc ')from dual;--删除左边的空白
select ltrim(' abc ')from dual;--删除右边的空白
select ltrim('wwwwwwwssss','w')from dual;--删除左边指定的字符
select replace('aaaassss','a','f')from dual;--替换指定的字符
--2,数字函数
select round(123.254,2) from dual;  --四舍五入,保留两位小数
select trunc(123.25622,2) from dual;  --截取数据,小数点截取两位
select mod(10.5,-3 )     from dual;  --取余数
select abs(-15)         from dual;  --取绝对值
select sign(20)          from dual;  --取符号值,正数(1),负数(-1),零(0)
select ceil(15.5)       from dual;  --向上取整数,大于等于他的一个整数
select floor(15.5)      from dual;  --向下取整数,小于等于他的一个整数
--3.日期函数
select sysdate       from dual;  --当前系统时间
select sysdate+1     from dual;  --当前系统时间+天数
select next_day(sysdate,'星期一')     from dual;   --下个星期一
select last_day(sysdate)              from dual;   --最后一天
select add_months(to_date('2011-1-30','yyyy-mm-dd'),1)     from dual;   --加一个月
--月份之间的差距
select months_between(to_date('2011-08-30','yyyy-mm-dd'),to_date('2011-01-30','yyyy-mm-dd')) from dual;
--天的差距
select sysdate-to_date('2015-8-1','yyyy-mm-dd') from dual;
--4,转型函数
select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss pm')from dual;--转换时间格式
select to_char(1234.567,'999,999.9999')from dual;--转换数字格式
select to_char(1150.25,'L000,000.0000')  from dual;--转换数字格式
select to_number('¥001,150.2500','L000,000.0000')  from dual;--转换数字格式
select to_date('2011年10-13 12:21:11 下午','yyyy"年"mm-dd hh:mi:ss pm')  from dual;--转换日期格式

--5,其他函数
select nvl(null,0) from dual;     --将空值替换为指定的值
select nvl(10,0) from dual;     --将空值替换为指定的值

select nvl2(null,1,0) from dual;    --判断是为空,不为空用前面的指定值,为空用后面的指定值
select nvl2(1000,1,0) from dual;    --判断是为空,不为空用前面的指定值,为空用后面的指定值

select nullif(1,1) from dual;    --判断是否相等,等就返回空值null
select nullif(1,2) from dual;    --判断是否相等,不等就返回前面的值

--返回第一个非空值
select coalesce(null,10) from dual;
select coalesce(null,null,10) from dual;
select coalesce(null,null,null,10) from dual;
select coalesce(null,null,null,10,20) from dual;

--多分支判断返回第一个非控制
select decode('条件值1','条件值1','结果值1','条件值2','结果值2','条件值3','结果值3','默认值') from dual;
select decode('条件值2','条件值1','结果值1','条件值2','结果值2','条件值3','结果值3','默认值') from dual;
select decode('条件值N','条件值1','结果值1','条件值2','结果值2','条件值3','结果值3','默认值') from dual;
--练习
--对性别进行判断,如果是t则是男,如果是f则是女,否则是妖
select id,name,sex,decode(sex,'t','男','f','女',''妖)from employee;
-两个相加,如果comm是空就用0代替
select ename,sal,comm,sal+nvl(comm,0) total from emp;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值