Oracle之单行函数

一.单行函数分类

单行函数主要分为5类:字符函数,数值函数,日期函数,转换函数,通用函数。

二.字符函数

字符函数又分为大小写控制函数和字符控制函数。

大小写控制函数: LOWER,UPPER,INITCAP

字符控制函数: CONCAT,SUBSTR,LENGTH/LENGTHB,INSTR,LPAD|RPAD,TRIM,REPLACE


LOWER:把大写字母全部转换为小写字母

select lower('SQL course') from dual;

注:dual是一个伪表可以用来测试函数和表达式。

运行结果:


UPPER:把所有小写字母转换为大写字母

 select upper('SQL Course') from dual;


INITCAP:每个单词的首字母大写

select initcap('sql course') from dual;


 CONCAT:把两个字符串连接

select concat('hello','world') from dual;


SUBSTR:截取某个范围内的字符串

select substr('hello world',1,5) from dual;


LENGTH:获取指定字符串的长度

 select length('hello') from dual;


INSTR:获取字符在指定字符串中的位置


LPAD:获取指定长度的字符,如果长度不够,则在字符左边添加指定字符;RPAD反之,这里不做说明

select lpad('hello',10,'*') from dual;
select lpad('hello',5,'*') from dual;
select lpad('hello',4,'*') from dual;


TRIM:获取不包含指定字符的字符串

select trim('h' from 'helloWorld') from dual;


REPLACE:替换指定字符

select replace('abcd','bc','m') from dual;


三.数值函数

主要包括:ROUND,TRUNC,MOD

ROUND:四舍五入

select round(49.569,2) from dual;


TRUNC:截取

 select trunc(49.569,2) from dual;


MOD:取余

 select mod(100,3) from dual;


四.日期函数

特点:

1.在日期上加上或者减去一个数字结果仍为日期

2.两个日期相减返回日期的相隔天数

3.可以用数字除以24来加上或者减去小时数。

MONTHS_BETWEEN:两个日期相差月数

select months_between('01-8月-18','01-6月-18') from dual;


ADD_MONTHS:指定日期中加上若干月数

 select sysdate from dual;


select add_months(sysdate,3) from dual;


NEXT_DAY:指定日期后一周内的日期

select next_day(sysdate,5) from dual;


LAST_DAY:本月的最后一天

select round(sysdate,'month') from dual;


ROUND:日期四舍五入

select round(sysdate,'month') from dual;


select round(sysdate,'year') from dual;


TRUNC:日期截取

sysdate=27-2月-18

select trunc(sysdate,'year') from dual;


select trunc(sysdate,'month') from dual;


EXTRACT:从指定时间中获取年月日

EXTRACT(year from date);

EXTRACT(month from date);

EXTRACT(day from date);

五.转换函数

TO_CHAR:把日期转化为指定格式

select to_char(sysdate,'YYYY"年"MM"月"DD"日"') from dual;

日期格式如下:


关于TO_CHAR有两种意义,另一种是把指定数字转化为指定格式

下面是TO_CHAR经常使用的数字格式:


 select to_char(1000,'$99,999.00') from dual;


TO_NUMBER:将字符转换为数字

select to_number('1000') from dual;


TO_DATE:将字符转换为日期

select to_date('20180801','YYYY MM DD') from dual;


六.通用函数

适用于任何数据类型同时也适用于空值。

NVL(expr1,expr2):若expr1为空返回expr2,不为空则返回expr1


select id,nvl(name,'没名字') from test;


NVL2(expr1,expr2,expr3):若expr1不为空返回expr2,若为空返回expr3

 select id,nvl2(name,'有名字','没有名字') from test;


NULLIF(expr1,expr3):相等返回null,不相等返回expr1,用法与NVL类似,此处不做说明


COALESCE(expr1,expr2,...,exprn):返回第一个非空表达式的值,如果所有表达式都是空值,最终返回第一个空值


if-then-else逻辑:

select 列名,... 
   case expr when 比较条件 then 结果
             when 比较条件 then 结果
             when 比较条件 then 结果
             else  expr end 

也可以使用decode,如





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值