航海日志 第1篇
oracle的sql函数分为单行函数和多行函数。单行函数只对单条记录有效,多行函数对多条记录有效。
单行函数包括,字符、数字、日期、转换和普通函数。
字符函数举例:
•
全小写 lower(sql course) sql course
•
全大写 upper(sql course) sql course
•首字母大写 initcap(sql course) sql course拼接 concat(good, string) goodstring 取子串 substr(string,1,3) str 求长度 length(string) 6
数字函数举例:round — 对数值进行四舍五入操作trunc — 截断。注意截断和舍入的位数,可以是负数。
round (45.923, 2) 45.92
round (45.923, 0) 46
round (45.923, -1) 50
trunc (45.923, 2) 45.92
trunc (45.923) 45
trunc (45.923, -1) 40
mod — 返回两数相除的余数
mod(1600, 300) — 100
日期函数:
•oracle将日期按照内部格式将日期存成以下七个字节–世纪、年、月、日、时、分、秒。•在oracle中日期缺省的显示格式为:dd – mon – yy 。•可以使用系统变量 sysdate 获取系统时间•。查看 sysdate时,可以使用虚拟表dual。
举例:求两个日期间有多少个月份 months_between(01-sep-95,11-jan-94) 1.9774194
在日期上加指定的月数 add_months(11-jan-94,6) 11-jul-94
下一个星期几是什么时候 next_day(01-sep-95,friday) 08-sep-95
某月最后一天 last_day(01-sep-95) 30-sep-95
把日期四舍五入到月份 round(25-may-95,month) 01-jun-95
round(25-may-95 ,year) 01-jan-95
把日期截断到月份 trunc(25-may-95 ,month) 01-may-95
trunc(25-may-95 ,year) 01-jan-95
转换函数
to_char 将数字或日期转换为字符串
to_number 将字符串转换成数字
to_date 将字符串转换成日期
在转换函数中会使用格式串
to_char(date, fmt)
格式串包含在中, 大小写敏感, 可以是任意有效的日期格式格式串:
yyyy 表示完整的四位数字年
year 表示英文拼写的年
mm 表示两位数字月
month 表示英文全拼的年
dy 表示三位缩写的星期
day 表示英文全拼的星期
一些特殊用法:
时间格式
hh24:mi:ss am 15:45:32 pm
在格式串中加入字符串
dd ” of ” month 12 of october
用后缀拼出整个日期
ddspth fourteenth
to_char(number, fmt)
使用此函数将数字转换成数字
9 表示数字
0 强制为0
$ 设置美元符号
l 使用当前字符集的货币符号
. 小数点
, 千位分隔符
可以使用to_number将字符串转换成数字可以使用to_date将字符串转换成格式日期
to_date (10 september 1992, dd month yyyy)
使用格式串to_date(char [, fmt])
普通函数null值处理函数
nvl (expr1, expr2)
如果expr1为null,返回expr2nvl2 (expr1, expr2, expr3)
如果expr1为非空,则返回expr2,如果expr1为null,则返回expr3nullif (expr1, expr2)
如果expr1=expr2,返回null,否则返回expr1
coalesce (expr1, expr2, …, exprn)
返回表达式列表中的第一个非空表达式
条件表达式,用case表达式或decode实现条件逻辑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
decode函数decode(col|expression, search1, result1
[, search2,result2,…,]
[, default])
分组函数:avg (distinct|all|n)
count (distinct|all|expr|*)
max (distinct|all|expr)
min (distinct|all|expr)
stddev (distinct|all|n)
sum (distinct|all|n)
variance (distinct|all|n)
