2012年(17)
分类: Oracle
2012-11-12 21:12:37
单行函数包括,字符、数字、日期、转换和普通函数。
字符函数举例:
•全小写 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,返回expr2
NVL2 (expr1, expr2, expr3)
如果expr1为非空,则返回expr2,如果expr1为NULL,则返回expr3
NULLIF (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)