Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19284
  • 博文数量: 17
  • 博客积分: 525
  • 博客等级: 中士
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 19:41
文章分类

全部博文(17)

文章存档

2012年(17)

我的朋友
最近访客

分类: Oracle

2012-11-12 21:12:37

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,返回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)
  

阅读(522) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~