单行函数:对于每一行数据进行计算后得到一行输出结果、
SQL单行函数根据数据类型分为字符函数、数字函数、日期函数、转换函数,另外还有一些通用函数。例如NVL函数

concat:连接字符串, substr:分隔字符串, length:字符串长度

instr:字符串中首次出现字母的位置

lpad:左端补齐

rpad:右端补齐

trim:在字符串收尾去掉相应的字符,中间的保留

replace:全部替换

round:四舍五入

trunc:截断

mod:求余

在日期上加减数字

日期相减

MONTHS_BETWEEN:两个日期相差的天数

ADD_MONTHS:向指定日其中添加若干月数
NEXT_DAY:指定日期的下一个星期*对应的日期

LAST_DAY:本月的最后一天
-- 来公司的员工中,hire_date是每个月倒数第二天来公司的有哪些?

ROUND:日期四舍五入
TRANC:日期截断


数据类型转换:隐性转换和显性转换
隐式转换


显性转换

日期转换为字符串

字符串转化为日期

在转化时要穿插字符的时候,要使用双引号

数字转字符串(货币符号:$ 美元 , L 当地货币符号)

字符串转数字


NVL(exp1,exp2):若exp1不为空,则使用exp1本身,若exp1为空,则使用exp2
1.可以使用的数据类型有日期、字符、数字
2.函数的一般形式:
-- 求公司员工的年薪(含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(不常用)
在SQL语句中使用IF-THEN-ELSE逻辑
使用两种方法
-- 查询部门号为 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])

原文:https://www.cnblogs.com/wffrzh/p/9408384.html