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 逻辑

 

转载于:https://www.cnblogs.com/wffrzh/p/9408384.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值