Oracle 常用函数回顾

  EMPTY_BLOB()
   该函数没有参数,函数返回 一个空的BLOB位置指示符。函数用于初始化一个BLOB变量或BLOB列。

  EMPTY_CLOB()
   该函数没有参数,函数返回 一个空的CLOB位置指示符。函数用于初始化一个CLOB变量或CLOB列。

  GREATEST()
   exp_list是一列表达式,返回其中最大的表达式,每个表达式都被隐含的转换第一个表达式的数据类型,如果第一个表达式是字符串数据类型中的任何一个,那么返回的结果是varchar2数据类型,同时使用的比较是非填充空格类型的比较。

 LEAST()
   exp_list是一列表达式,返回其中最小的表达式,每个表达式都被隐含的转换第一个表达式的数据类型,如果第一个表达式是字符串数据类型中的任何一个,将返回的结果是varchar2数据类型,同时使用的比较是非填充空格类型的比较。

  UID
   该函数没有参数,返回唯一标示当前数据库用户的整数。

  USER
   返回当前用户的用户名

  USERENV()
   基于opt返回包含当前会话信息。opt的可选值为:

  ISDBA    会话中SYSDBA脚色响应,返回TRUE
   SESSIONID  返回审计会话标示符
   ENTRYID   返回可用的审计项标示符
   INSTANCE  在会话连接后,返回实例标示符。该值只用于运行Parallel 服务器并且有 多个实例的情况下使用。
   LANGUAGE  返回语言、地域、数据库设置的字符集。
   LANG    返回语言名称的ISO缩写。
   TERMINAL  为当前会话使用的终端或计算机返回操作系统的标示符。

  VSIZE()
   x是一个表达式。返回x内部表示的字节数。

  SQL中的组函数

  组函数也叫集合函数,返回基于多个行的单一结果,行的准确数量无法确定,除非查询被执行并且所有的结果都被包含在内。与单行函数不同的是,在解析时所有的行都是已知的。由于这种差别使组函数与单行函数有在要求和行为上有微小的差异.

  组(多行)函数

  与单行函数相比,oracle提供了丰富的基于组的,多行的函数。这些函数可以在select或select的having子句中使用,当用于select子串时常常都和GROUP BY一起使用。

  AVG([{DISYINCT|ALL}])
   返回数值的平均值。缺省设置为ALL.
SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal) FROM scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413

  COUNT({*|DISTINCT|ALL} )
   返回查询中行的数目,缺省设置是ALL,*表示返回所有的行。

  MAX([{DISTINCT|ALL}])
   返回选择列表项目的最大值,如果x是字符串数据类型,他返回一个VARCHAR2数据类型,如果X是一个DATA数据类型,返回一个日期,如果X是numeric数据类型,返回一个数字。注意distinct和all不起作用,应为最大值与这两种设置是相同的。

  MIN([{DISTINCT|ALL}])
   返回选择列表项目的最小值。

  STDDEV([{DISTINCT|ALL}])
   返回选者的列表项目的标准差,所谓标准差是方差的平方根。

  SUM([{DISTINCT|ALL}])
   返回选择列表项目的数值的总和。

  VARIANCE([{DISTINCT|ALL}])
   返回选择列表项目的统计方差。

  用GROUP BY给数据分组

  正如题目暗示的那样组函数就是操作那些已经分好组的数据,我们告诉数据库用GROUP BY怎样给数据分组或者分类,当我们在SELECT语句的SELECT子句中使用组函数时,我们必须把为分组或非常数列放置在GROUP BY子句中,如果没有用group by进行专门处理,那么缺省的分类是将整个结果设为一类。
select stat,counter(*) zip_count from zip_codes GROUP BY state;ST ZIP_COUNT– ———AK 360AL 1212AR 1309AZ 768CA 3982

  在这个例子中,我们用state字段分类;如果我们要将结果按照zip_codes排序,可以用ORDER BY语句,ORDER BY子句可以使用列或组函数。
select stat,counter(*) zip_count from zip_codes GROUP BY state ORDER BY COUNT(*) DESC;ST COUNT(*)– ——–NY 4312PA 4297TX 4123CA 3982

Share

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据