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中有关字符串操作的语法 Oracle提供了丰富的字符串函数 lpad()函数 lpad()函数用于左补全字符串.在某些情况下,预期的字符串为固定长度,而且格式统一,此时可以考虑使用lpad ...
- 理解CSS中的数学表达式calc()
前面的话 数学表达式calc()是CSS中的函数,主要用于数学运算.使用calc()为页面元素布局提供了便利和新的思路.本文将介绍calc()的相关内容 定义 数学表达式calc()是calculat ...
- css中的数学表达式calc()
前言 数学表达式calc()是CSS中的函数,主要用于数学运算.使用calc()为页面元素布局提供了便利和新的思路. 概念 数学表达式calc()是calculate计算的缩写,它允许使用+.-.*. ...
- 如何在C#中运行数学表达式字符串
方法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_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(m,n)
oracle中数据类型number(m,n)中m表示的是所有有效数字的位数,n表示的是小数位的位数.m的范围是1-38,即最大38位. 1> .NUMBER类型细讲:Oracle numbe ...
- 基于语法分析器GOLD Parser开发的数学表达式计算器
最近发现一款文法分析神器,看完官网(http://goldparser.org/)的介绍后感觉很犀利的样子,于是就拿来测试了一番,写了一个数学表达式分析的小程序,支持的数学运算符如下所示:常规运算:+ ...
随机推荐
- 暴力 Codeforces Round #305 (Div. 2) B. Mike and Fun
题目传送门 /* 暴力:每次更新该行的num[],然后暴力找出最优解就可以了:) */ #include <cstdio> #include <cstring> #includ ...
- 145 Binary Tree Postorder Traversal 二叉树的后序遍历
给定一棵二叉树,返回其节点值的后序遍历.例如:给定二叉树 [1,null,2,3], 1 \ 2 / 3返回 [3,2,1].注意: 递归方法很简单,你可以使用迭代方法来解 ...
- python_13(前端—cs)
第1章 前端三大标准:1.1 三大标准介绍 1.2 html标签一览表 第2章 结构标准 html 2.1 html结构 2.2 html常用标签 2.2.1 h1-h6 2.2.2 span 2.2 ...
- P2658 汽车拉力比赛
题目描述 博艾市将要举行一场汽车拉力比赛. 赛场凹凸不平,所以被描述为M*N的网格来表示海拔高度(1≤ M,N ≤500),每个单元格的海拔范围在0到10^9之间. 其中一些单元格被定义为路标.组织者 ...
- Understanding Scroll Views 深入理解 scroll view 读书笔记
Understanding Scroll Views 深入理解 scroll view 读书笔记 It may be hard to believe, but a UIScrollView is ...
- innerHTML与IE浏览器内存泄露问题
使用 sIEve 扫描和筛选 如果大量使用 JavaScript 和 Ajax 技术开发 Web 2.0 应用程序,您很有可能会遇到浏览器的内存泄漏问题.如果您有一个单页应用程序或者一个页面要处理很多 ...
- javaee 第七周作业
一.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一 ...
- 解决异常System.Runtime.Interopservices.COMException RequestLock问题
工具——导入导出设置,重置调试设置就可以了,这是调试文件的异常
- OpenJudge_2757:最长上升子序列
描述一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的.对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1 ...
- Django 你需要了解的入门操作
创建一个django project (我的版本是1.11.11) django-admin startproject mysite cd mysite 当前目录下会生成mysite的工程,目录结 ...