oracle单行函数
1.字符类
lower:转换为小写
Select ENAME,LOWER(ENAME) From EMP
upper:转换为大写
Select upper('abcd') From DUAL
initcap :首字母大写
Select INITCAP(ENAME) From EMP
2.字符处理类
concat:连接两个不同的列,CONCAt只能接受两个参数
Select CONCAT(EMPNO,ENAME) From EMP
Select CONCAT('A','B') From dual
substr:截取子串
下标从1开始
Select SUBSTR(ENAME,2) From EMP--从第2个位置截到末尾
Select SUBSTR(ENAME,2,3) From EMP--从第2个位置截取3个
length:提取长度
Select ENAME,length(ename) From emp
INSTR:相当于String类中的indexOf,求索引
Select ENAME,instr(ename,'A') From emp
LPAD和RPAD的用法
表示补充的含义
Select LPAD(SAL,10,'*') From EMP
Select RPAD(SAL,10,'*') From EMP
将sal显示为10位,不足的位置补上字符*
trim两边滤空
Select Trim(' A B C ') From DUal
使用LTrime和RTrim过滤一边的空格
Select LTrim(' A B C ') From DUAL
REPLACE:替换
Select ename ,Replace(ename,'A','B') From EMP
3.数字转换类:
ROUND:四舍五入
TRUNC:截取
MOD:取余
Select ROUND(16.336666663,3) From DUAL
Select TRUNC(16.33666666,3) From DUAL
Select Mod(8,3) From DUAL
4.日期类函数
sysdate:年月日时分秒
日期+-1,都代表一天的时间,比如:
Select TRUNC(Sysdate-365) From DUAL
Select Sysdate-1/24/60 From DUAL
5.日期运算函数
MONTHS_BETWEEN:表示两个日期的月份之差
Select EMPNO,HIREDATE,MONTHS_BETWEEN(Sysdate,HIREDATE)/12 From EMP
ADD_MONTHS:表示给指定的日期加一个月数
Select HIREDATE,ADD_MONTHS(HIREDATE,3) From EMP
NEXT_DAY:表示以当前时间为基准,下一个"目标日"的日期
Select NEXT_DAY(Sysdate,'星期二') From DUAL
LAST_DAY:计算当前日期的最后一天
Select HIREDATE,LAST_DAY(HIREDATE)-HIREDATE From EMP
ROUND:对日期进行四舍五入
Select ROUND(Sysdate,'YEAR') From DUAL
TRUNC:表示对日期进行截取
Select TRUNC(Sysdate) From DUAL
5.TO_CHAR函数将日期转换为字符类型
Select TO_CHAR(Sysdate,'YYYY-MM-DD DAY HH24:MI:SS AM') From DUAL
特殊的日期转换描述
Select TO_CHAR(Sysdate,'"今天是"YYYY-MM-DD DAY HH24:MI:SS AM') From DUAL
6.TO_CHAR:可以对数字类型进行类型转换,转换的同时,你可以指定转换后的格式,比如:
9
0
,
L
$
.
G
D
实例:
Select TO_CHAR(SAL,'$999,999.00') From EMP
7.TO_NUMBER:作用是用来将一个指定的字符串类型的数字,转换为数字格式
注意:格式必须要匹配.
Select TO_NUMBER('$1,600.01','$999,999.99') From DUAL
8.TO_DATE:将字符串类型的日期,转换为日期类型
Select TO_DATE('2008-01==01','YYYY-MM==DD') From DUAL
特殊的日期格式:
Select TO_DATE('2008-01-01 星期二 10:36:31 上午','YYYY-MM-DD DAY HH:MI:SS PM') From DUAL
9,函数嵌套:
Select LENGTH(LOWER(ENAME)) From EMP
10.关于通用函数:
NVL:当修饰的字段的内容为null时,运算结果为指定的值
Select COMM,NVL(COMM,200) From EMP
NVL2:如果第一个表达式的值不为null,显示表达式2的值,否则(为null)显示表达式3的值
Select SAL,COMM,NVL2(COMM,SAL+COMM,SAL) From EMP
NULLIF:如果前后两个表达式的内容相等的,那就返回null,否则,返回第一个表达式的值
Select ENAME,JOB,NULLIF(LENGTH(ENAME),5) From EMP
COALESCE函数:用来匹配多个字段的值,如果表达式1的值为null,显示表达式2的值,如果表达式2也为空,显
示表达式3的值,依次类推
Select MGR,COMM, Coalesce(MGR,COMM,EMPNO,88) From EMP
11.条件表达式:
两中方式:
1.case:表达式语句
2.decode:函数,decode()
A.case语句
条件判断
case expre when condition then value
else value
end
Select job,
Case JOB
When 'CLERK' Then '店员'
When 'SALESMAN' Then '销售'
Else '临时工'
End
From emp
B.decode函数
Select job,
decode(JOB,
'CLERK','店员'
,'SALESMAN' ,'销售',
'临时工'
) From emp
posted on 2011-08-11 16:29 xinyu1020 阅读(1782) 评论(0) 编辑 收藏 举报