oracle数学计算公式,Oracle中有关数学表达式的语法

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

三角函数

SIN               ASIN              SINH

COS             ACOS           COSH

TAN ATAN             TANH

SELECT SIN(3.14159265/6), ASIN(1), SINH(1) FROM DUAL;

--其它的都类似

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

SELECT ATAN2(3,3) FROM DUAL;

数学函数

ABS(x)          返回x的绝对值

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

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

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

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

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

SELECT CEIL(5.6), CEIL(-5.6) FROM DUAL;

SELECT FLOOR(5.6), FLOOR(-5.6) FROM DUAL;

EXP(x)          返回e的x次幂,其中e约为2.71828183

LN(x)          返回x的自然对数

SELECT EXP(2), EXP(1), EXP(2.3) FROM DUAL;

SELECT LN(EXP(2)), LN(2.71828183) FROM DUAL;

LOG(x,y)       返回以x为底y的对数

POWER(x,y)      返回x的y次幂

SQRT(x)        返回x的平方根

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

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

SELECT MOD(2.31, 1.1) FROM DUAL;

SIGN(x)         返回x的符号

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

位小数取整vkjsy是负数,则对x在小数点的左边的第|y|位取整。

此函数是四舍五入取整

TRUNC(x[,y])    与ROUND类似,之不过是直接舍去尾数

SELECT ROUND(1234.5678), ROUND(1234.5678, 2), ROUND(1234.5678, -2) FROM DUAL;

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中有关字符串操作的语法

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

理解CSS中的数学表达式calc&lpar;&rpar;

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

css中的数学表达式calc&lpar;&rpar;

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

如何在C&num;中运行数学表达式字符串

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

Oracle中字段的修改操作语法

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

oracle中的function的简单语法定义

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

oracle中sql语句的to&lowbar;date语法

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

oracle中数据类型number&lpar;m&comma;n&rpar;

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

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

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

随机推荐

boost解析json

#include #include #include &lt ...

(转)PK系列之六:该不该读中文翻译的专业书

本文引用地址:http://blog.sciencenet.cn/blog-2999994-956596.html 此文来自科学网王立新博客,转载请注明出处. 刘新建:这几天在读一本译著:投入产出分析 ...

Apple MDM Supported configurable settings

导读:可以通过MDM实现的配置:Apple MDM Supported configurable settings 一.Accounts(账户信息) 1.Exchange ActiveSync(交换a ...

u-boot学习&lpar;两&rpar;:u-boot简要分析

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 看到不错的文章.不要加入收藏夹, ...

用phpstudy搭建dedecms网站验证码出不来解决方案

验证码图片不显示,这应该是很多站长朋友们最长遇到的一个问题,本地测试明明好好的,为什么传上空间或者服务器上验证码就无法显示了呢,春哥分析这可能是由于没有加载gd库扩展所引起的,那么怎么解决呢?由于引起 ...

数据结构与算法(C&sol;C&plus;&plus;版)【串】

第四章 (一)串   数据结构中提到的串,即字符串,由 n 个字符组成的一个整体( n >= 0 ).这 n 个字符可以由字母.数字或者其他字符组成.例如,S = &qu ...

&lbrack;国嵌笔记&rsqb;&lbrack;021-022&rsqb;&lbrack;ARM处理器工作模式&rsqb;

[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Superviso ...

&lbrack;Swift&rsqb;LeetCode696&period; 计数二进制子串 &vert; Count Binary Substrings

Give a string s, count the number of non-empty (contiguous) substrings that have the same number of ...

Python全栈之路----常用模块----random模块

程序中有很多地方需要用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串. >>> import random >>> random ...

微服务日志之Spring Boot Kafka实现日志收集

前言 承接上文( 微服务日志之.NET Core使用NLog通过Kafka实现日志收集 https://www.cnblogs.com/maxzhang1985/p/9522017.html ).NE ...

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值