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 函数、聚焦函数的更多相关文章

  1. Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...

  2. 重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  3. Oracle日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...

  4. oracle:sql函数

    Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...

  5. Oracle过程及函数的参数模式,In、out、in out模式

    Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...

  6. oracle的substr函数的用法

    oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串   substr( string, start_position, [ length ] ) 如:     substr( ...

  7. Oracle nvl(),nvl2()函数介绍

    NVL函数 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值, ...

  8. Oracle LPAD/RPAD函数在处理中文时的注意事项

    首先看下Oracle官方对函数的定义: The RPAD function returns an expression, right-padded to a specified length with ...

  9. oracle wm_concat(column)函数的使用

    oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并,如果您对oracle wm_concat(c ...

随机推荐

  1. Oracle:spool 的一个用法

    spool 是sqlplus的一个语法,非sql. 平时,我们通过ssh或者xmanger连接到oracle后,如果我们想把我们在上面操作的脚本及脚本执行过程.结果保存下来的话,可以通过spool来实 ...

  2. uses-permission和permission详解

    1.<uses-permission>: 官方描述: If an application needs access to a feature protected by a permissi ...

  3. 用HTTP操作和文件操作把网页下载到sd卡

    这里先把代码贴到这里做一个存档,写到SD卡的是一个txt文件,改成HTML格式之后会出现百度主页,但是中文是乱码,这一点先暂时不去研究了. 代码: package com.larry.gotcha; ...

  4. 「LuoguP3381」【模板】最小费用最大流

    Description 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. Input 第一行包含四个正整数N.M.S.T,分别表 ...

  5. Mother's Milk

    链接 分析:我们用vis[i][j][k]来记录A,B,C三个状态是否被访问过,同时用s[i]来记录C的所有可能值,当i==0时,如果j合法,则标记s[k]=1,最后统计所有为1的s即可 /* PRO ...

  6. 禁用选择文本功能user-select

    有时候,我们为了用户体验,需要禁用选择文本功能. 这需要用到一个CSS属性:user-select,user-select的文档点这里 user-select有两个值:none:用户不能选择文本tex ...

  7. bzoj3653

    主席树+dfs序 b在a上方时可以O(1)算出来,子树中就用主席树查询区间和,权值线段树的下标是深度,值是子树size-1,每次查询就行了...线段树合并挂了 #include<bits/std ...

  8. codeforces 126B

    Asterix, Obelix and their temporary buddies Suffix and Prefix has finally found the Harmony temple. ...

  9. C# 利用Aspose.Words .dll将本地word文档转化成pdf(完美破解版 无水印 无中文乱码)

    下载Aspose.Words .dll  http://pan.baidu.com/s/1c8659k 在vs2010中新建窗体应用程序,命名为 wordtopdf 添加Aspose.Words .d ...

  10. UVaLive 7456 Least Crucial Node (并查集+暴力 或者 求割点)

    题意:求标号最小的最大割点.(删除该点后,指定点#sink能到达的点数减少最多). 析:由于不知道要去掉哪个结点,又因为只有100个结点,所以我们考虑用一个暴力,把所有的结点都去一次,然后用并查集去判 ...