Oracle数据库—— 单行函数
Posted 秋风de领域
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库—— 单行函数相关的知识,希望对你有一定的参考价值。
单行函数:对于每一行数据进行计算后得到一行输出结果、
SQL单行函数根据数据类型分为字符函数、数字函数、日期函数、转换函数,另外还有一些通用函数。例如NVL函数
- 操作数据对象
- 接受参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以转换数据类型
- 可以嵌套
- 参数可以是一列或一个值
1、字符函数
大小写控制函数:lower,upper,initcap
字符控制函数:concat,substr,length,instr,lpad | rpad,trim,replace
concat:连接字符串, substr:分隔字符串, length:字符串长度
instr:字符串中首次出现字母的位置
lpad:左端补齐
rpad:右端补齐
trim:在字符串收尾去掉相应的字符,中间的保留
replace:全部替换
2、数字函数
round:四舍五入
trunc:截断
mod:求余
3、日期函数
- 在日期上加上或减去一个数字结果认为日期
- 两个日期相减返回日期之间相差的天数,日期不允许做加法运算,无意义
- 可以用数字除24来向日期中加上或减去天数
在日期上加减数字
日期相减
MONTHS_BETWEEN:两个日期相差的天数
ADD_MONTHS:向指定日其中添加若干月数
NEXT_DAY:指定日期的下一个星期*对应的日期
LAST_DAY:本月的最后一天
-- 来公司的员工中,hire_date是每个月倒数第二天来公司的有哪些?
ROUND:日期四舍五入
TRANC:日期截断
4、转换函数
数据类型转换:隐性转换和显性转换
隐式转换
显性转换
日期转换为字符串
字符串转化为日期
在转化时要穿插字符的时候,要使用双引号
数字转字符串(货币符号:$ 美元 , L 当地货币符号)
字符串转数字
5、通用函数
NVL(exp1,exp2):若exp1不为空,则使用exp1本身,若exp1为空,则使用exp2
1.可以使用的数据类型有日期、字符、数字
2.函数的一般形式:
- NVL(commission_pct,0)
- NVL(hire_date,\'01-JAN-97\')
- NVL(job_id,\'No Job Yet\')
-- 求公司员工的年薪(含commission_pct) 奖金率
-- 输出last_name,department_id,当department_id为null时,显示‘没有部门’。
NVL2(exp1,exp2,exp3):若exp1为空,返回exp2,否则,返回exp3
-- 查询员工的奖金率,若为空,返回0.01, 若不为空,返回实际奖金率+0.015
NULLIF(exp1,exp2):exp1等于exp2时返回null,不等时返回exp1
比较员工姓和名的长度,相同返回null,不同返回名的长度
COALESCE(不常用)
- COALESCE 与 NVL 相比的优点在于 COALESCE 可以同时处理交替的多个值。
- 如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE 。
6、条件表达式
在SQL语句中使用IF-THEN-ELSE逻辑
使用两种方法
- CASE表达式
- DECODE函数
-- 查询部门号为 10, 20, 30 的员工信息, 若部门号为 10, 则打印其工资的 1.1 倍, 20 号部门, 则打印其工资的 1.2 倍, 30 号部门打印其工资的 1.3 倍数
在需要使用IF-THEN-ELSE逻辑时:
1、CASE表达式
CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END
2、DECODE函数
DECODE(col|expression, search1, result1 ,
[, search2, result2,...,]
[, default])
7.总结
- 使用函数对数据进行计算
- 使用函数修改数据
- 使用函数控制一组数据的输出格式
- 使用函数改变日期的显示格式
- 使用函数改变数据类型
- 使用 NVL 函数
- 使用IF-THEN-ELSE 逻辑
以上是关于Oracle数据库—— 单行函数的主要内容,如果未能解决你的问题,请参考以下文章