当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle通用函数分组函数子查询(一)
发布时间:2010/9/10 14:45:51 来源:www.xue.net 编辑:城市总裁吧

  注意:1)Oracle中的字符串是严格区分大小写的,日期和字符只能在单引号中出现;

  2)把列与列,列与字符连接在一起用 ‘||’符号;

  3)列的别名,紧跟列名,也可以在列名和别名之间加入关键字‘AS’,以便在别名中包含空格或特殊的字符并区分大小写,使用双引号。

  例子:

  SELECT    last_name  ||  ' is a '  ||  job_id   AS  "Employee Details"

  FROM    employees

  where    first_name  like  '%s_';

  通用函数

  空值是无效的,未指定的,未知的或不可预知的值,空值不是空格或者0 ,包含空值的数学表达式的值都为空值。

  这些函数适用于任何数据类型,同时也适用于空值:

  NVL (expr1, expr2)

  NVL2 (expr1, expr2, expr3)

  NULLIF (expr1, expr2)

  COALESCE (expr1, expr2, ..., exprn)

  (1)NVL (expr1, expr2) ->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致

  (2)NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型

  (3)NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1

  (4)COALESCE(expr1, expr2, ..., exprn) ->列表中第一个非空的表达式是函数的返回值,如果所有的表达式都是空值,最终将返回一个空值。

  条件表达式在SQL语句中使用IF-THEN-ELSE 逻辑。可以使用两种方法:–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] )

  分组函数

  分组函数作用于一组数据,并对一组数据返回一个值。

  组函数语法:

  SELECT [column,] group_function(column), ...

  FROM table

  [WHERE condition]

  [GROUP BY column]

  [ORDER BY column];

  注意:在SELECT列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中;

  (所用包含于SELECT列表中,而未包含于组函数中的列都必须包含于GROUPBY子句中)

  但包含在GROUP BY 子句中的列不必包含在SELECT列表中;

  且可以在在GROUP BY子句中包含多个列;

  不能在WHERE子句中使用组函数;但可以在HAVING子句中使用组函数。

  使用HAVING过滤分组:

  1.行已经被分组;

  2.使用了组函数;

  3.满足HAVING子句中条件的分组将被显示;

  SELECT column, group_function

  FROM table

  [WHERE condition]

  [GROUP BY group_by_expression]

  [HAVING group_condition]

  [ORDER BY column];

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved