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,否则继续往下匹配,直到有匹配的值为止。假如没有匹配的值,最终将返回一个空值。
上一篇: xml文档的解析
下一篇: MySQL中NULL判断
推荐阅读
-
ORACLE常用数值函数、转换函数、字符串函数
-
MySQL数据库文本处理函数、常用日期和时间处理函数、数值处理函数讲解
-
mysql常用函数实例总结【聚集函数、字符串、数值、时间日期处理等】
-
Oracle的学习心得和知识总结(三)|Oracle数据库重要函数详解 单行函数(一)(建议收藏 持续更新...)
-
MySQL日期函数之字符串和时间戳互转
-
Shell使用Epoch进行日期时间转换和计算的几个小函数
-
oracle逐步学习总结之oracle数字函数和日期函数(基础四)
-
【数据库笔记】Oracle & MySQL 日期时间数据类型、日期函数和转换函数の对比(续更)
-
[学习笔记] Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数
-
MySQL日期和字符串转换函数实例