单行函数
2018-04-14 13:07 猪牙哥 阅读(422) 评论(0) 编辑 收藏 举报单行函数:字符函数、数值函数、日期函数、转换函数、通用函数、条件表达式函数
Ⅰ、字符函数:大小写控制函数(Lower、Upper、Initcap),字符控制函数(Concat、Substr、Length/Lengthb、Instr、Lpad|Rpad、Trim、Replace)
1、大小写控制函数
①Lower:转小写
lower(arg) 的参数含义:将arg全部小写
②Upper:转大写
upper(arg) 的参数含义:将arg全部大写
③Initcap:首字母大写
initcap(arg) 的参数含义:将arg的首字母小写
2、字符控制函数
①Concat:字符串连接
concat(c1,c2)的参数含义:将c1和c2连接起来
②Substr:取字符串的字串
substr(a,b,c)的参数含义:从字符串a的第b位(包括第b位)开始取c个字符
③Length/Lengthb:字符数/字节数
length(arg)/lengthb(arg) 的参数含义:获取字符数/字节数
④Instr:在字符串中查找另外一个字符串
instr(a,b) 的参数含义:从字符串a查找字串b的位置,如果查找不到返回0
⑤Lpad|Rpad:左填充|右填充
lpad(a,b,c) | rpad(a,b,c) 的参数含义:从字符串a的长度小于b,则以字符c填充左 | 右,如果字符串的长度大于b,则从左到右取b个字符
⑥Trim:去掉前后指定的字符
trim( a from b) 的参数含义:去掉b中以a字符开头的字符,注意a只能是一个字符
⑦Replace:替换
replace(a,b,c) 的参数含义:用c替换a中的b
Ⅱ、数值函数:Round、Trunc、Mod
①Round:四舍五入
Round(a,b) 的参数含义:将数值为a进行四舍五入,精度为b
②Trunc:截断
Trunc(a,b) 的参数含义:将数值为a的精度设置为b
③Mod:求余
Mod(a,b) 的参数含义:得到a除以b的余数
Ⅲ、日期函数
1、oracle中的日期:
oracle中的日期型数据实际含有两个值:日期和时间
默认的日期格式是 DD-MON-RR
2、日期的数学运算
在日期上加上或减去一个数字结果仍为日期
两个日期相减返回日期之间相差的天数
--计算员工的工龄:天 星期 月 年
3、日期函数
函数 描述
Months_between 两个日期相差的月数
Add_months 向指定日期中加上若干月数
Next_day 指定日期的下一个日期
Last_day 本月的最后一天
Round 日期四舍五入
Trunc 日期截断
months_between(a,b) 的参数含义:a和b之间相差的月数
add_months(a,b) 的参数含义:a是日期,b是要加上的月份数
next_day(a,b) 的参数含义:a日期的下一个日期,可以是1~7,也可以是英文,比如TUESDAY
last_day(a) 的参数含义:日期a该月的最后一天日期
round(a,b) 的参数含义:a日期,b精度
trunc(a,b) 的参数含义:a日期,b截取时的精度
Ⅳ、转换函数
1、显示数据类型转换
①、to_char函数对日期的转换
to_char(date,'format_model')
日期的格式:
格式 说明 举例
YYYY Full year in numbers 2011
Year Year spelled out(年的英文全称) twenty eleven
MM Two-digit value of month 月份(两位数字) 04
Month Full name of the month(月的全称) 4月
DY Three-letter abbreviation of the day of the week 星期一
DAY Full name of the day of the week 星期一
DD Numeric day of the month 02
--2018-04-14 11:10:40今天是星期六
②、to_char函数对数字的转换
to_char(number,format_model)
数字转换的格式:
9 数字
0 零
$ 美元符
L 本地货币符号
. 小数点
, 千位符
--查询员工的薪水:两位小数、千位符、本地货币代码
Ⅴ、通用函数:适用于任何数据类型,同时也适用于空值
常用的通用函数:nvl、nvl2、nullif、coalesce
①nvl(a,b) 的参数含义:当a为null的时候取b值
②nvl2(a,b,c) 的参数含义:当a为null的时候,返回c,否则返回b
③nullif(a,b) 当a=b的时候,返回null,否则返回a
④coalesce(a,b,...) 从左到右 找到第一个不为null的值
Ⅵ、条件表达式:在SQL语句中使用IF-THEN-ELSE
1、实现方式
①Case表达式:SQL99的语法,类似Basic,比较繁琐
case expr when comparison_expr1 then return _expr1
[ when comparison_expr2 then return_expr2
when comparison_exprn then return_exprn
else else_expr ]
end
--给员工涨工资,总裁1000 经理800 其他400
②Decode函数:Oracle自己的语法,类似java,比较简介
decode(col|expression,search1,result1
[,search2,result2,...,]
[,default])