Oracle中的数值处理相关函数介绍
转载请注明出处:http://www.52php.cn/article/p-pjthgokh-beo.html,谢谢! 1、概述Oracle函数处理三种类型的数值:单值、值组和值列表。 这些函数跟串函数一样,用来更改数值或者是返回数值相关的信息。 数值类型区分如下:
函数表示方法: FUNCTION(value[,option]) [表示可选参数]。 如果一个列值不包含任何值,则此时是NULL而不是0,他是空的,在后面这会对函数造成一定的影响,后面会详细介绍。 请注意下面很多示例都是用一个常量来演示,实际使用中,直接将其替换为列即可。 2、单值函数单值函数一般都比较简单,但是很常用。 2.1、四则运算他们分别是“+”,“-”,“*”,“/”,很简单,大家都会,不多说,看下简单示例: 结果很显然:5 1 6 1.5 2.2、NULL我们想将上面的SQL改为与NULL一起运算看下结果如何: +NULL-*/NULL 结果将返回:NULL NULL NULL NULL
示例: ceil1ceil1.21.51.6(-2.42.52.6 结果为:1 2 2 2 -2 -2 -2 -2
Oracle不支持虚数,所以这个value不能为负数,否则会返回错误。 2.10、EXP、LN和LOG他们是与科学计算相关的函数,商业计算很少涉及。 EXP是e的幂运算;LN是自然对数或以e为底的对数。他们互为反函数。 LOG(e,value)=LN(value) 科学工作者自然会知道他们的含义,此处不多说。 2.11、ROUND和TRUNC也是两个相关的函数。TRUNC按精读截取某个狮子,ROUND则根据给定的精读舍入数值。 ROUND precision) round 11round11.11111.888 trunctrunc 他们分别返回:
11 11.11 11.89 10 11 11.11 11.88 10 trunc是直接截取,而round会四舍五入处理。 precision参数可以为负数,表示精度移到小数点左边。 2.12、SIGNABS返回的是绝对值,即一个数的值大小,不带符号。而SIGN返回的符号。 SIGN signsign 结果:-1 0 12.13 科学计算函数一大波数学函数... SIN、SINH、COS、COSH、TAN、TANH、ACOS、ATAN、ATAN2和ASIN。 我们实际使用是很少的。 如果你确实要使用,那么你数学功底一定不错,那么函数的语法又是很简单的,所以,这里不再演示他们的用法。 3、聚集函数 聚体函数一般用于统计,把一组值作为操作对象来获得某个结果。 3.1、组值函数中的NULL我们要时刻考虑到NULL值会对我们的结果造成怎样的影响。 不同于单值函数,组值函数会忽略NULL值后计算得到结果。 很多时候,这样做事挺好的:如果我们是计算平均数的,使用AVG函数,那么忽略NULL的行计算结果,可能也正是我们期望的工作方式。 但是,倘若上面这个例子,我们不是使用AVG而是SUM,那问题可能就会变得严重了。越多的NULL值,我们所得结果就与我们期望得到的正确结果相差越大。 但是对于这个问题,我们可以借助MAX,MIN等函数,优化我们的处理方式。 当然,COUNT与其他函数会有所不同。 (1)count(*)始终返回总的数据条数 (2)count(field)返回当前字段中不为NULL的个数 组值函数很多时候会与单值函数结合使用。 3.2、常见组值函数常用的组值函数是:AVG,COUNT,MAX,MIN,SUM STDDEV和VARIANCE函数用于常规的统计学功能,分别是标准差和标准方差。 当然,他们也是SQL语言标准所支持的,此处不作介绍了,可以参考:SQL数据库语言总结及代码示例 3.3、组值函数中的DISTINCT与ALL对应的就是DISTINCT,语法: COUNT([DISTINCT|ALL] value) DISTINCT会强制同名字段只统计一次。 默认使用的是ALL,即检查每一行。 4、列表函数 组值函数处理的是一列,而列表函数处理的是一行的一组列。 列表函数可以比较各列,然后选出我们希望得到的一列。 比如,我们要获取同学们左右科目中最高的分数: greatest englishmathcpp grades 函数GREATEST和LEAST用于返回最大和最小的值。
GREATEST(value1,value2.value3...) LEAST(value1,sans-serif; font-size:14px"> 他们参数可以是多个,可以使用列、常量、计算结果等。 他们不仅限于数值类型中使用,也可以用于字符串类型。 函数COALESCE用于第一个非NULL的参数,如果所有参数都是NULL,则返回NULL。 COALESCE(value1,sans-serif; font-size:14px"> 可以使用MAX和MIN查找行,然后通过该行获取数据。 在计算和组合多个条件时,我们还要考虑到优先级,比如AND优先级高于OR,如果我们不确定优先级时,或者为了阅读更清晰,请加上括号。 更多相关内容 随着文章的更新,会逐渐补全下面的链接。 1、Oracle中的字符串类型及相关函数详解 2、Oracle中的正则表达式(及函数)详解 3、Oracle中的数值类型相关函数详解 4、Oracle中的日期相关函数详解 5、Oracle中的转换函数和变换函数详解 6、SQL数据库语言总结及代码示例 7、Oracle 12c Windows安装、介绍及简单使用(图文) 8、Oracle 12c 简单的jdbc使用 9、Oracle中的SQL分页查询原理和方法详解
博客会持续更新Oracle数据库相关文章。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |