关于oracle数据库(10)函数
分析函数,用于统计排名
语法:函数名() over(order by 排序字段 asc | desc)
row_number() 无论值是否相等,生成连续的行号
-- 1,2,3,4,
select ename,sal,row_number() over (order by sal desc) 名次 from emp;
dense_rank() 如果值相等,则排名相同,排名仍连续
--1,2,2,3,4,5
select ename,sal,dense_rank() over (order by sal desc) 名次 from emp;
rank() 如果值相等,则排名相同,排名不连续
select ename,sal,rank() over (order by sal desc) 名次 from emp;
select ,case when 条件 then '结果' else '' ,from 表
select ename,sal, case
when sal<=1000 then '★'
when sal<=2000 then '★★'
when sal<=3000 then '★★★'
when sal<=4000 then '★★★★'
when sal<=5000 then '★★★★★'
end 等级 from emp;
单行函数(标量函数),1行数据返回1个结果
日期函数
sysdate 返回系统当前时间
--dual 专业用来做运算的表 只有一行一列
select sysdate from dual;
select 1+2+3+4*5*5/7 from dual;
用于加/减,关系运算
select sysdate 当前时间 from dual
--几天之后
select sysdate+3 from dual
--几天之前
select sysdate-3 from dual
--间隔天数
距离年底还有多少天
select to_date('2016-12-31','yyyy-mm-dd')-sysdate from dual
--查询1982年1月1日之后入职的员工
select * from emp
where hiredate>to_date('19820101','yyyymmdd');
months_between(d1,d2) 返回指定日期之间的月份间隔
add_months(d,num) 返回给指定日期加上整数个月后的新日期
--查询入职时间和转正时间 [3个月转正]
last_day(d) 返回指定日期当月的最后1天
--查询每月最后1天入职的员工
--查询每月倒数第3天入职的员工
字符函数:字符串下标从1开始,0也表示第1位
length(str) 返回字符串的长度
select length('abc123456') from dual;
select ename,length(ename) from emp;
substr(str,index)/substr(str,index,length)
select substr('huwen@163.com',6) from dual; --下标从1开始
--java 下标0开始 oracle 下标1 开始
select substr('huwen@163.com',7,3) from dual;
--java 第1才是 下标,第2个参数还是下标
--oracle 第1个是下标 第2个长度
instr(str1,str2) 返回str1中str2出现的下标
--instr就相当于java indexOf()
select instr('yyyy@163.com','@') from dual;
select '&name' from dual
--'&xxx' 表示接收用户输入
select substr('&email',1,instr('&email','@')-1) from dual;
select substr('&email',instr('&email','@')+1) from dual;
转换函数
to_char(d)/to_char(d,fmt) 日期>>字符
--转默认格式的字符串
select to_char(sysdate) from dual;
select to_char(sysdate,'yyyy"年"mm"月"yy"日"') from dual
--转指定格式的字符串:yyyy,mm,dd,hh/hh24,mi,ss,day
select to_char(sysdate,'day') from dual;
select to_char(sysdate,'yyyy/mm/dd') from dual;
select to_char(sysdate,'hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss day') from dual;
select to_char(sysdate,'fmyyyy"年"mm"月"dd"日" day') from dual;
--fm 表示去掉日期前缀0
select hiredate ,to_char(hiredate,'yyyy') from emp;
to_date(str)/to_date(str,fmt) 字符>>日期
--默认格式
select to_date('1-10月-12')-sysdate from dual;
--指定格式
select to_date('2012-10-1','yyyy-mm-dd')-sysdate from dual;
select to_date('2012-10-1 15:50:00','yyyy-mm-dd hh24:mi:ss')-sysdate from dual;
to_char(num,fmt) 数字>>字符,用于货币的显示
select to_char(10000,'9,999,999.99') from dual;
select ename,sal,
to_char(sal,'$9,999.99') 美元,
to_char(sal,'C9,999.99') 人民币,
to_char(sal,'L9,999.99') 本土 from emp;
数学函数
mod(n1,n2) 返回n1除以n2的余数
select mod(7,2) from dual -- 7%2
ceil(num) 返回大于等于该数的最小整数--向上取整
select ceil(4.0001) from dual
floor(num) 返回小于等于该数的最大整数--向下取整
select floor(4.99999) from dual
round(num)/round(num,s) 四舍五入,s表示小数位数
select round(4.5) from dual;
select round(4.4) from dual;
select round(-11.5) from dual; --java里面是-11 这里-12
--保留3位小数
select round(3.141596,3) from dual;
trunc(num)/trunc(num,s) 截断数字,直接舍去
select trunc(4.7) from dual;
select trunc(4.79,1) from dual; --保留一位小数
其他函数
nvl(exp1,exp2) 空值替换函数
含义:如果表达式exp1为null,则使用表达式exp2代替
--Oracle排序时,将空值null理解为最大
select ename,sal,comm from emp order by comm desc
select * from emp order by nvl(comm,0) desc,sal desc;
--表达式计算时,如果包含空值null,则返回null
select ename,sal,comm,(sal+nvl(comm,0))*12 年薪 from emp;
decode() 相当于case..when..语句
case when 条件 then 结果 -- 相当于java if else if
decode 就相当于switch 可以判断相等
select ename,deptno,
decode(deptno,10,'技术部',20,'销售部',30,'管理层')
from emp;
select ename,deptno,
decode(deptno,10,'AAA',20,'BBB',30,'CCC') 部门 from emp;
关于oracle数据库(10)函数的更多相关文章
- Oracle数据库DECODE函数的使用.
decode函数是Oracle数据库独有的. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2) ...
- Oracle数据库to_date函数注意事项
使用PL/SQL连接到Oracle数据库服务器,执行一条update语句: update pjnl set transtime = to_date('2015-05-14 12:13:20','yyy ...
- Oracle数据库--SQL函数
Oracle SQL函数 1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii( ...
- Oracle数据库有用函数
有用函数 DECODE 语法例如以下: DECODE(value, if1, then1, if2,then2,if3,then3, . . . else ) Value 代表某个表的不论什么类型的 ...
- Oracle数据库的函数
一.字符函数upper和lower (1).upper和lower upper把小写的字符转换成大小的字符 ,lower把大写字符变成小写字符 . select upper('yes') from d ...
- Mysql和Oracle数据库concat()函数
一.函数的使用参数不同 Mysql支持多个字符串拼接: CONCAT(str1,str2,-) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1, ...
- Oracle数据库常用函数
Oracle常用函数: 20.COS返回一个给定数字的余弦SQL> select cos(-3.1415927) from dual;COS(-3.1415927)--------------- ...
- Oracle数据库over函数的使用
转自: https://blog.csdn.net/a1065423444/article/details/75635611 over()函数写法over(partition by expr2 or ...
- ORACLE 数据库 MOD 函数用法
1.求2和1的余数. Select mod(2,1) from dual: 2能被1整除所以余数为0. 2.MOD(x,y)返回X除以Y的余数.如果Y是0,则返回X的值. Select mod(2,0 ...
- Oracle数据库常用函数使用--持续更新中
NVL函数.NVL( string1, replace_with).如果string1为NULL,则NVL函数返回replace_with的值,否则返回原来的值. INSTR函数.用于查找指定字符串是 ...
随机推荐
- WWW 资源下载与表单提交
在注册与验证用户信息,以及非即时通信的游戏中,我们可以使用WWW类使用短链接来完成客户端与服务器数据的通信,今天我们将使用用POST方法来完成的用户注册与登录,在最后介绍下其它资源的加载. 首先使用P ...
- SXT分布式缓存技术公开课的观后感
最近几天在研究Redis,Redis作为最近比较流行的缓存技术,其特点还是很明显的,Redis使用Key-Value的结构来存储数据,Redis也是内存型的数据库,数据一开始是保存在内存中的,通过某些 ...
- [ An Ac a Day ^_^ ] [kuangbin带你飞]专题五 并查集 POJ 2236 Wireless Network
题意: 一次地震震坏了所有网点 现在开始修复它们 有N个点 距离为d的网点可以进行通信 O p 代表p点已经修复 S p q 代表询问p q之间是否能够通信 思路: 基础并查集 每次修复一个点重新 ...
- 4、Xcode8中的钥匙串保存数据取出时候为空的问题
Xcode7以及之前的版本直接使用Keychain存储数据即可,但是从Xcode8开始,再用之前的方法会发现,读取不到存进去的数据了,或者说,存储不进去了,原因是苹果加强了隐私保护,这个东西需要打开开 ...
- Python基础(十一)-面向对象
三种编程范式: 1.函数式编程:函数指数学意义上的函数 由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的.没有可变的状态,函数就是引用透明(Ref ...
- Font-Awesome IIS下不显示问题
解决方法: 在IIS设置中添加一个IMME fileExtension: .woff mimeType:application/x-font-woff
- Java Day03 面向对象程序设计
1.面向对象 面向对象是指一种程序设计泛型,同时也是一种程序开发的方法. 2.类 类是一种抽象的概念,类中包含了数据与对数据的操纵. 具有相同特性(数据元素)和行为(功能)的对象的抽象就是类.类是对象 ...
- Multi-Objective Data Placement for Multi-Cloud Socially Aware Services---INFOCOM 2014
[标题] [作者] [来源] [对本文评价] [why] 存在的问题 [how] [不足] assumption in future work [相关方法或论文] [重点提示] [其它]
- jquery正则常用的
jQuery.validator.addMethod("mobilePhone",function(value,element){ return this.optional(ele ...
- iOS 富文本点击事件
#import "ViewController.h" #define font 17 @interface ViewController ()<UITextViewDeleg ...