Oracle学习——单行函数——字符函数、数值函数、日期和时间函数、转换函数、通用函数

Oracle的单行函数(SQL函数)

字符函数:输入参数为字符类型,返回值时字符或数字类型

大小写控制函数:

	UPPER(char) :将字符串转换为大写格式

	LOWER(char): 转换小写格式  

    INITCAP(char):首字母大写
    
			Select * from emp where job = upper(‘salesman’);

字符控制函数:

CONCAT(str1,str2):用于字符串连接。

Concat(‘hello’,’orale’)  输出结果 hellooracle  

SUBSTR(char,m[n]):

用于截取字符串,char为指定字符串 m为截取位置。(m=0从首位,m为负数,从尾部开始)n为截取长度。

LENGTH(char):

返回字符串长度 空格也算长度 。

INSTR(char1,char2,[n,[m]]):

该函数用于取得子串在字符串中的位置,char1源串,char2子串,n用于指定起始搜索位置,m指定子串第m次出现的次数,默认值为1

Instr(‘hello oracle hello oracle’,’ oracle’,1,2)   结果 20

LPAD(cahr1,n,cha2):

用于在字符串的左端填充字符,char1源字符串,char2被填充字符,n指定填充后char1的总长度。

Lpad(‘hello’,10,’#’)   结果#####hello

RPAD(char1,n,char2):右侧填充字符,同上↑

REPLACE(char,search_string[,replacement_string]):

用于替换字符串的子串内容。Char指定源字符串,search_string 被替换字符串 replacement_string
替换字符串

Replace(‘hello oracle’,’oracle’,’world’) 结果 hello world

数值函数:输入参数和返回值都是数字类型

ROUND(n[,m]):

用于返回四舍五入的结果,n任意数字,m必须整数

		Round(25.328)         	25
		Round(25.328,2)      	25.33
		Round(25.328,-1)      	30

TRUNC(n[,m]):

截取数字,n任意数字,m必须整数

		trunc(25.328)       	25
		trunc(25.328,2)     	25.32
		trunc(25.328,-1)    	20

MOD(m,n):求模(求余数) m/n 如果n为0 则返回m

		mod(25,6)      			1
		mod(25,0)      			25

日期和时间函数

SYSDATE:返回当前系统日期

		select sysdate from dual;
			select sysdate-1 昨天,sysdate 今天,sysdate+1 明天 from dual;

MONTHS_BETWEEN(d1,d2):

返回日期d1和d2之间相差的月数,d1>d2为正数,否则为负数。

//计算员工入职多长时间

Select months_between(sysdate,hiredate) from emp;       //hiredate为入职日期

Select round(months_between(sysdate,hiedate))/12 from emp;

ADD_MONTHS(d,n):

用于返回特定日期之前或之后的月份所对应的时间,d指定日期时间,n代表月份,可以是任意整数

//查询每位员工入职30年后的年份

			Select ename,add_months(hiredate,30*12) from emp;

NEXT_DAY(d,char):

返回特定日期之后的第一个工作日所对应的日期,d指定日期时间值,char指定工作日(工作日必须与日期语言匹配)

//查询下周一的日期

		Select sysdate,next_day(sysate,’星期一’) from dual;

LAST_DAY(d):
返回特定日期所在月份的最后一天

	Select sysdate,last_day(sysdate) from dual;
	
		//每月最后一天入职的员工有哪些
		
				Select empno,ename,hiredate from emp where hiredate=last_day(hiredate);

ROUND(d[,fmt]):

返回日期时间的四舍五入结果 d日期fmt方式(如year)

转换函数

将数据从一种数据类型转换为另一种数据类型(oracle可以自动转换)

	TO_CHAR():日期类型 转换成字符类型
	TO_DATE():字符类型转换成日期类型
	TO_NUMBER():字符类型转换成数字类型
	TO_CHAR():数字类型转换成字符类型

通用函数:

适用于任何数据类型和空值
NVL(expr1,epr2): 用于处理null如果expr1是null返回expr2 否返回expr1

Select ename,sal,comm,sal+nvl(comm,0) from emp;

NVL2(expr1,expr2,expr3): 用于处理null如果expr1不是null返回expr2 否则返回expr3

Select ename,sal,comm,nvl2(comm,sal+comm,sal) from emp ;

NULLIF(expr1,expr2):

用于比较表达式expr1和expr2,如果相等返回null,否则返回expr1。

//查询所有员工的入职信息,并把本月初入职的员工与其他员工区分
Select empno,ename,hiredate,nullif(hiredate,trunc(sysdate,’MONTH’)) from emp

COALESCE(expr1[,expr2][,…]):

从第一个开始匹配,如果等于expr1 则返回expr1,否则继续往下匹配,直到有匹配的值为止。假如没有匹配的值,最终将返回一个空值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值