Oracle中有关数学表达式的语法

三角函数

SIN               ASIN              SINH
COS             ACOS           COSH
TAN             
 ATAN             TANH

  1. SELECT SIN(3.14159265/6), ASIN(1), SINH(1) FROM DUAL;  
  2. --其它的都类似 

ATAN2(x,y)      返回坐标为(x,y)点的反正切

  1. SELECT ATAN2(3,3) FROM DUAL;  

数学函数

ABS(x)          返回x的绝对值

  1. SELECT ABS(3), ABS(-1) FROM DUAL;  

BITAND(x,y)     返回对x,y进行位与(AND)操作的结果

  1. SELECT BITAND(1,0), BITAND(0,1), BITAND(0,0), BITAND(1,1), BITAND(1100, 1010) FROM DUAL;  

CEIL(x)         返回大于或等于x的最小整数(注意负数)

FLOOR(x)        返回小于或等于x的最大整数

  1. SELECT CEIL(5.6), CEIL(-5.6) FROM DUAL;  
  2. SELECT FLOOR(5.6), FLOOR(-5.6) FROM DUAL;  

EXP(x)          返回e的x次幂,其中e约为2.71828183
LN(x)           返回x的自然对数

  1. SELECT EXP(2), EXP(1), EXP(2.3) FROM DUAL;  
  2. SELECT LN(EXP(2)), LN(2.71828183) FROM DUAL;  

LOG(x,y)        返回以x为底y的对数
POWER(x,y)      返回x的y次幂
SQRT(x)         返回x的平方根

  1. SELECT LOG(10,100), POWER(3,3), SQRT(4) FROM DUAL;  

MOD(x,y)        返回x除以y的余数

  1. SELECT MOD(2.31, 1.1) FROM DUAL;  

SIGN(x)         返回x的符号

  1. SELECT SIGN(5), SIGN(-5), SIGN(0) FROM DUAL;  

位小数取整vkjsy是负数,则对x在小数点的左边的第|y|位取整。
                此函数是四舍五入取整
TRUNC(x[,y])    与ROUND类似,之不过是直接舍去尾数

  1. SELECT ROUND(1234.5678), ROUND(1234.5678, 2), ROUND(1234.5678, -2) FROM DUAL;  
  2. SELECT TRUNC(1234.5678), TRUNC(1234.5678, 2), TRUNC(1234.5678, -2) FROM DUAL;  

聚合函数

所谓聚合函数是指针对多条记录的函数。Oracle最常用的聚合函数包括,max()、min()、avg()、sum()和count()函数。本节将讲述这些函数的用法。

max()函数——求最大值

max()函数用于获得记录集在某列的最大值。例如,为了返回员工最高工资,可以利用max()函数。

select max(salary) max_salary from t_salary;

min()函数——求最小值

min()函数可以用来获得记录集在某列上的最小值,其功能与max()函数相反。

select distinct e.employee_name, s.salary

from t_employees e, t_salary s

where e.employee_id = s.employee_id and s.salary = (select min(salary) from t_salary)

avg()函数——求平均值

avg()函数用于获得记录集在某列上的平均值。

select e.employee_name, avg(salary)

from t_employees e, t_salary s

where e.employee_id = s.employee_id

group by e.employee_id, e.employee_name

sum()函数——求和

sum()函数用于获得结果集上某列值的和。

select e.employee_name, sum(salary)

from t_employees e, t_salary s

where e.employee_id = s.employee_id

group by e.employee_id, e.employee_name

count()函数——获得记录数

ount()函数的作用对象同样为记录集。与其他聚合函数不同的是,count()函数可以有三种方式来进行计数:

count(*)——计算行数

count(column)——计算某列

count(1)——般情况下select count(*) 与 count(1) 执行的结果是一样的,都包括了对null的统计.。

insert into t_employees values (16, null, null,null);

select count(*) from t_employees;

select count(employee_id) from t_employees;

select count(employee_name) from t_employees;

select count(1) from t_employees;

一般来说,利用count(1)进行计数的速度最快,但是特别注意的是,预期的结果是针对整行数据,还是某列的数据

运算表达式

Oracle中常用的运算包括:数学运算,逻辑运算和按位运算。本节将通过范例着重讲述这三种运算的常用运算符和运算规则。

数学运算

数学运算是最常用的运算方式,Oracle中的数学运算符包括:+、-、*、/,分别代表了加、减、乘除运算。在使用数学运算时,Oracle会自动将其他数据类型转换为数值型,然后再参与运算。

select 5+3 result from dual;

select 5-3 result from dual;

select 5*2 result from dual;

select 5/2 result from dual;

需要注意的是,任何一种运算符与null的运算结果均为null。

select 5+null result from dual;

select 5-null result from dual;

select 5*null result from dual;

select 5/null result from dual;

逻辑运算

Oracle中的逻辑运算包括:

>:大于运算,可用于数值型、日期型和字符串类型;

>=:大于等于运算,可用于数值型、日期型和字符串类型;

<:小于运算,可用于数值型、日期型和字符串类型;

<=:大于等于运算,可用于数值型、日期型和字符串类型;

=:等于,可用于数值型、日期型和字符串类型;

<>:不等于,可用于数值型、日期型和字符串类型;

!=:与<>用法相同;

NOT:取反操作;

AND:布尔值的与操作;

OR:布尔值的或操作。

需要注意的是,Oracle中的逻辑运算符只能作为条件判断,并不返回值。为了查询工资在5000-7000之间的记录,可以利用逻辑运算符来组合查询条件。

select * from t_salary where salary>=5000 and salary<=7000;

对于null值,需要特别注意的是,无论使用哪种运算符,结果都会返回null。当比较的结果为null,并作为条件出现时,Oracle都会将其解释为false。

select 1 result from dual where 1=null;

select 1 result from dual where 1<>null;

select 1 result from dual where null=null;

select 1 result from dual where null<>null;

位运算

从Oracle8i开始,系统已经提供了位运算符。最常用的莫过于bitand运算符。

select bitand(192, 100) result from dual;

Oracle中有关数学表达式的语法的更多相关文章

  1. Oracle中有关字符串操作的语法

    Oracle中有关字符串操作的语法 Oracle提供了丰富的字符串函数 lpad()函数 lpad()函数用于左补全字符串.在某些情况下,预期的字符串为固定长度,而且格式统一,此时可以考虑使用lpad ...

  2. 理解CSS中的数学表达式calc()

    前面的话 数学表达式calc()是CSS中的函数,主要用于数学运算.使用calc()为页面元素布局提供了便利和新的思路.本文将介绍calc()的相关内容 定义 数学表达式calc()是calculat ...

  3. css中的数学表达式calc()

    前言 数学表达式calc()是CSS中的函数,主要用于数学运算.使用calc()为页面元素布局提供了便利和新的思路. 概念 数学表达式calc()是calculate计算的缩写,它允许使用+.-.*. ...

  4. 如何在C#中运行数学表达式字符串

    方法1:利用DataTable中的Compute方法 1 string expression = "1+2*3"; 2 DataTable eval = new DataTable ...

  5. Oracle中字段的修改操作语法

      对字段操作 操作方法 更新字段名 alter table TABLE_NAME rename column column_old to column_new; 添加字段 alter table T ...

  6. oracle中的function的简单语法定义

    1. create or replace 函数名 (参数名 in 类型) return 返回值类型 as 定义变量 begin 函数体 end;

  7. oracle中sql语句的to_date语法

    完整日期:TO_DATE('2009-4-28 00:00:00', 'yyyy-mm-dd hh24:mi:ss'); to_date('2008/09/20','yyyy/mm/dd') 创建视图 ...

  8. oracle中数据类型number(m,n)

    oracle中数据类型number(m,n)中m表示的是所有有效数字的位数,n表示的是小数位的位数.m的范围是1-38,即最大38位. 1> .NUMBER类型细讲:Oracle   numbe ...

  9. 基于语法分析器GOLD Parser开发的数学表达式计算器

    最近发现一款文法分析神器,看完官网(http://goldparser.org/)的介绍后感觉很犀利的样子,于是就拿来测试了一番,写了一个数学表达式分析的小程序,支持的数学运算符如下所示:常规运算:+ ...

随机推荐

  1. JavaEE中一些缩写的含义

    EJB:Enterprise JavaBeans  (企业JavaBeans) XML:Extensible Markup Lauguage (可扩展标记语言) SOAP:Simple Object ...

  2. javascript简单的表单验证

    <html> <head> <title>用户登录</title> <script language="javascript" ...

  3. JAVA常用知识总结(二)

    JAVA中的参数传递总结先看两道笔试题: public class Test2 { public static void main (String [] args) { StringBuffer a ...

  4. fedora kde桌面系统配置

    本文向大家分享个人将fedora操作系统作为工作生活首选桌面系统的一些配置经验,系统版本与fedora最新版本保持一致,当前为fedora 25. #添加rpm源su -c 'dnf install ...

  5. express搭建平台

    1.nodeJs的安装(npm的安装) nodejs官方下载地址:https://nodejs.org 2.express的安装( $ npm install -g express #全局安装expr ...

  6. Summary of 2016 International Trusted Computing and Cloud Security Summit

    1)      Welcome Remarks 2)      The advancement of Cloud Computing and Tursted Computing national st ...

  7. SQLyog连接MySQL时出现的2058错误解决方法

    配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了. 解决方法:windows 下cmd 登录 mysql -u root -p 登录你的 mysql 数据库,然后执行这条SQL ...

  8. rmdir

    rmdir——删除空目录 remove empty directories 命令所在路径:bin/rmdir 示例: # rmdir /tmp/japan/longze 删除/tmp/japan/目录 ...

  9. swfit:运算符重载 Operator Methods

    Operator Methods Classes and structures can provide their own implementations of existing operators. ...

  10. 7-Java-C(搭积木)

    题目描述: 小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9. 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小. 最后搭成4层的金字塔形,必须用完 ...