oracle 函数、聚焦函数
oracle 常用的函数 以及 聚焦函数
--1,字符函数
--当没有表可以用个的时候oracle自带一个虚表dual
-- || 表示连接符号 将字符串连接到一起
式显示
Lower(char):将字符串转化为小写格式
?将所有员工的名字按小写的方
select lower(ename),lower(job) from emp;
Upper(char):将字符转化为大写的格式
select upper('abcd') from dual;
Length(char):返回字符串的长度
?显示正好为5个字符员工的姓名
select * from emp where length(ename)=5;
Substr(char,m,n):取字符串的子串,m:表示开始的位置; n:要截取的字符个数
?显示所有员工姓名的前三个字符
select ename ,substr(ename,1,3) from emp;
Trim,Ltrim,Rtrim:去掉查询结果中的空格(全,左,右)
select '=='|| trim(' abc ') ||'==' from dual;
?以首字母大写的方式显示所有员工
select ename,
substr(ename,0,1)||lower( substr(ename,2,length(ename)-1) )
from emp;
Replace (char1,search_string,replace_string): 查询替换
? 显示所有的员工姓名将A替换成“我是A”
select ename, replace(ename,'A','我是A')as result from emp;
Instr(char1,char2,[,n[,m]]):取字符串的位置;n:开始位置,m:第m个char2的位置
? 从第1个字符开始找到员工姓名中第二个A所在的位置
select ename, Instr(ename,'A',1,2) from emp;
--2,数学函数
Round(n,[m]):四舍五入。
如果省掉m,则四舍五入到整数;如果m是整数,则四舍五入到小数点后的m位后,如果是m负数,则 四舍五入到小数点m位前
? 73.2564 四舍五入到小数点后2位
select round(73.2564,2) from dual;
trunc(n,[m]):用户截取数字。
如果省略m,就截去小数部分,如果m是整数就截取到小数点后m位后,如果m是负数,则截取到小数点的前m位
? 73.2564 截取到小数点后3位
select trunc(73.2564,3) from dual;
Mod(n,[m]):取模
? 8%3=?
select mod(8,3) from dual;
Floor(n):向下取整
? 7.5846 向下取整
Ceil(n):向上取整
?7.5846 向上取整
select floor(7.1289) ,Ceil(7.1289) from dual;
--2,其他函数
Abs(n) 返回数字n的绝对值
Acos(n) 返回n的反余弦值
Asin(n) 返回n的反正弦值
Atan(n) 返回n的反正切值
Cos(n) 返回n的余弦
Exp(n) 返回e的次幂
Log(m,n) 返回对数
Power(m,n) 返回m的n次幂
--3,日期函数
1 sysdate : 返回系统时间
select sysdate from dual;
2 current_date :返回当前时间
select current_date from dual;
3 Next_day(date,week) :给定时间的下一个星期是几号 /*week 数字和英文*/
select next_day(sysdate,'MONDAY') from dual;
4 add_months(d,n):返回在时间d上加n个月的时间
select add_months( sysdate,12 ) from dual;
5 last_day(d): 返回指定日期所在月份的最后一天
select last_day( sysdate) from dual;
练习:
?查找已经入职362个月多的员工
?显示满30年份服务年限的员工的姓名和受雇日期
?每个员工加入公司的天数
?下个星期一是多少号
?找出各月倒数第三天受雇的所有员工
--4,转换函数
时间---->字符
字符---->数字
字符---->时间
--4.1、to_char( 时间,格式)
--时间格式:
yyyy :显示年份
yy :显示年份后2位
mm :月份
dd :号
hh /hh24 :小时
mi :分
ss :秒
Eg:select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual;
--货币格式:
9 :显示数字
0 :不足则补0
. :显示小数点
,: 显示分隔符
$ : 显示美元符号
L : 显示本地货币
C : 显示国际货币符号
G : 制定位置显示分割符号
D : 制定位置显示小数点符号
?薪水指定货币符号
Eg:
8756984.555
$8,756,984.555
$9,999,999.99
L9,999,999.99
select to_char(8756984.5,'L9,999,999.99') from dual;
select to_char(8756984.5,'$9G999G999D99') from dual;
--4.2、字符转日期 to_date('2010-10-10','yyyy-mm-dd')-----------------
Eg: select to_date('2017-2-27','yyyy-mm-dd') from dual;
(insert into emp values( 9900,
'ZHANGSAN','CLERK',7698,to_date('2010-10-10','yyyy-mm-dd'),2500.00,
0.00,30);)
--4.3、字符转数字 To_number(‘’)-------------------------------------
select to_number('')*8 from dual;
--5,聚集函数 count,sum,avg,max,min --------------------------------
--5.1、count ---统计总行数
select count(*) from emp;
select count(empno) from emp; --统计员工总人数
--5.2、sum-----统计总和
select sum(sal) as total from emp; --统计所有人员的工资总和
--5.3、avg-----统计平均数
select avg(sal) from emp; --统计所有人员的工资平均值
--5.4、max--最大值---min最小值
select max(sal) as maxSal ,min(sal) as minSal from emp;
------聚合函数不能放到where 作为条件
select * from emp where sal avg(sal); --错;
select * from emp where sal>(select avg(sal) from emp);---对
--6,显示当前用户-
select user from dual;
--7,decode 布尔判断函数 ------
--eg:查询出CLERK 的人员数量(如果job是clerk则输出1)
select sum( decode(job,'CLERK',1,0) ) from emp;
--eg:查询各个工种有多少人
select sum( decode(job,'CLERK',1,0) ) as CLERK,
sum( decode(job,'SALESMAN',1,0) ) as SALESMAN,
sum( decode(job,'MANAGER',1,0) ) as MANAGER,
sum( decode(job,'ANALYST',1,0) ) as ANALYST,
sum( decode(job,'PRESIDENT',1,0) ) as PRESIDENT,count(*) as total
from emp;
--8,nvl(column,default) 非空-----------------------------------
--eg:emp表中所有员工在元奖金的基础上增加50元奖金
update emp set comm=nvl(comm ,0 ) +50 ; --如果comm为空,就输出0,不为空就输出本身值
oracle 函数、聚焦函数的更多相关文章
- Oracle 中 decode 函数用法
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...
- 重写Oracle的wm_concat函数,自定义分隔符、排序
oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
- oracle:sql函数
Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...
- Oracle过程及函数的参数模式,In、out、in out模式
Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...
- oracle的substr函数的用法
oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] ) 如: substr( ...
- Oracle nvl(),nvl2()函数介绍
NVL函数 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值, ...
- Oracle LPAD/RPAD函数在处理中文时的注意事项
首先看下Oracle官方对函数的定义: The RPAD function returns an expression, right-padded to a specified length with ...
- oracle wm_concat(column)函数的使用
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并,如果您对oracle wm_concat(c ...
随机推荐
- Configuring Your EMS Server or EMS Console Server on Windows/Linux
EMS Configuration Files RAD Studio provides the scripts to render the web-browser console, the EMS s ...
- bzoj3136: [Baltic2013]brunhilda
这个题为什么会放在数据结构啊 首先因为有决策包容性,对于一个n每次必然选择一个n%p最大的p,令n减n%p 设fi表示i变成0的步数的话,同样我们可以知道f是有单调性的 假如fd能转移到fk,首先d一 ...
- POJ1077 Eight —— A*算法
主页面:http://www.cnblogs.com/DOLFAMINGO/p/7538588.html 关于A*算法:g(n)表示从起点到任意节点n的路径花费,h(n)表示从节点n到目标节点路径花费 ...
- Adobe 官方公布的 RTMP 规范
原文: http://blog.csdn.net/defonds/article/details/17534903 RTMP 规范中文版 PDF 下载地址 译序:本文是为截至发稿时止最新 Adobe ...
- vue 更改头像功能实现
——————– 如上图所示:需要完成的功能是点击更改头像,获取本地文件库,选择图片后将原始图片替换.这里我就直接用html文件引入vue来简单实现在这功能,代码如下: HTML: <div i ...
- hdu-5675 ztr loves math(数学)
题目链接: ztr loves math Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- Java中断机制
1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法 ...
- 6-4 Haar特征1
实际上特征就是图像中某个区域的像素点,经过某种四则运算之后得到的结果.所以说图像的特征它是像素经过运算之后得到的某一个结果.这个结果可以是一个具体的值,也可以是一个向量,又或是一个多维的元素.所以说特 ...
- 由mysql分区想到的分表分库的方案
在分区分库分表前一定要了解分区分库分表的动机. 对实时性要求比较高的场景,使用数据库的分区分表分库. 对实时性要求不高的场景,可以考虑使用索引库(es/solr)或者大数据hadoop平台来解决(如数 ...
- E20180408-hm
interaction n. 互动; 一起活动; 合作; 互相影响; interface n. 界面; <计>接口; 交界面; v. (使通过界面或接口) 接合,连接; [计算机] ...