Oracle常用函数
编辑
553
2020-07-21
Oracle常用函数。
单行函数
字符串函数
upper()
字母转大写
select upper('ok') from dual; # OK
lower()
字母转小写
select lower('OK') from dual; # ok
数值函数
round(n)
四舍五入
select round(16.18) from dual; # 16
round(n, m)
四舍五入,保留m位数
select round(16.18, 1) from dual; # 16.2
m可取负值,表示小数点往前保留
select round(16.18, -1) from dual; # 17
select round(16.18, -2) from dual; # 0
select round(66.18, -2) from dual; # 100
trunc(n, m)
直接截取,不看四舍五入
select trunc(16.18) from dual; # 16
select trunc(16.18, 1) from dual; # 16.1
select trunc(16.18, -1) from dual; # 16
mod(n, m)
求余
select mod(10, 3) from dual; # 1
日期函数
日期之间可直接加减,也可以直接与数字加减
months_between(date1, date2)
两个日期之间间隔的月数,返回数字
to_char(date, format)
将日期按照指定格式转换为字符串
# 2020-07-21 05:29:16
select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;
# 2020-7-21 5:29:16
select to_char(sysdate, 'fm yyyy-mm-dd hh:mi:ss') from dual;
# 2020-07-21 17:29:16
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;
to_date(str, format)
字符串转日期
select to_char('2020-07-21 17:29:16', 'yyyy-mm-dd hh24:mi:ss') from dual;
通用函数
nvl(n, m)
如果n是null,则返回m;如果n不是null,返回n。
多行函数(聚合函数)
count(1) 计数
sum() 求和
avg() 求平均
max() 取最大值
min() 取最小值
条件表达式
case A
when B then C
when D then E
[ else F ]
end
等值判断,当A=B时,执行C;当A=D时,执行E;end为结束标志。
类似 if...else if...else...
case
when A>B then C
when A>D then E
[ else F ]
end
当有范围性判断时,case后面不要跟任何东西,把判断放到when后边。
oracle专用表达式
decode( A,
B, C,
D, E
[,F]
)
效果等同case等值判断。
- 0
- 0
-
分享