Oracle 常用SQL函数

发表于:2007-07-02来源:作者:点击数: 标签:
航海日志 第1篇 Oracle的SQL函数分为单行函数和多行函数。单行函数只对单条记录有效,多行函数对多条记录有效。 单行函数包括,字符、数字、日期、转换和普通函数。 字符函数举例: 全小写 LOWER(@#SQL Course@#) sql course 全大写 UPPER(@#SQL Course@#) S

航海日志 第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)

原文转自:http://www.ltesting.net