• oracle--单行函数和多行函数


    单行函数

    1、字符函数

    函  数

    功  能

    示  例

    结 果

    INITCAP (char)

    首字母大写

    initcap ('hello')

    Hello

    LOWER (char)

    转换为小写

    lower ('FUN')

    fun

    UPPER (char)

    转换为大写

    upper ('sun')

    SUN

    LTRIM (char, set)

    左剪裁

    ltrim ('xyzadams', 'xyz')

    adams

    RTRIM (char, set)

    右剪裁

    rtrim ('xyzadams', 'ams')

    xyzad

    TRANSLATE (char, from, to)

    按字符翻译

    translate ('jack', 'abcd', '1234')

    j13k

    REPLACE (char, search_str, replace_str)

    字符串替换

    replace ('jack and jue', 'j', 'bl')

    black and blue

    INSTR (char, substr[, pos])

    查找子串位置

    instr ('worldwide', 'd')

    5

    SUBSTR (char, pos, len)

    取子字符串

    substr ('abcdefg',3,2)

    cd

    CONCAT (char1, char2)

    连接字符串

    concat ('Hello', 'world')

    Helloworld

    2、数值函数 

    函  数

    功  能

    示  例

    结 果

    ABS(n)

    取绝对值

    abs(-15)

    15

    CEIL(n )

    向上取整

    ceil(44.778)

    45

    SIN(n)

    正弦

    sin(1.571)

    .999999979

    COS(n)

    余弦

    cos(0)

    1

    SIGN(n)

    取符号

    sign(-32)

    -1

    FLOOR(n)

    向下取整

    floor(100.2)

    100

    POWER(m,n )

    m的n次幂

    power(4,2)

    16

    MOD(m,n)

    取余数

    mod(10,3)

    1

    ROUND(m,n)

    四舍五入

    round(100.256,2)

    100.26

    TRUNC(m,n)

    截断

    trunk(100.256,2)

    100.25

    SQRT(n)

    平方根

    sqrt(4)

    2

    3、日期函数

    函  数

    功  能

    示  例

    结 果

    MONTHS_BETWEEN

    返回两个日期间的月份

    months_between ('04-11月-05','11-1月-01')

    57.7741935

    ADD_MONTHS

    返回把月份数加到日期上的新日期

    add_months('06-2月-03',1)

    add_months('06-2月-03',-1)

    06-3月-03

    06-1月-03

    NEXT_DAY

    返回指定日期后的星期对应的新日期

    next_day('06-2月-03','星期一')

    10-2月-03

    LAST_DAY

    返回指定日期所在的月的最后一天

    last_day('06-2月-03')

    28-2月-03

    ROUND

    按指定格式对日期进行四舍五入

    round(to_date('13-2月-03'),'YEAR')

    round(to_date('13-2月-03'),'MONTH')

    round(to_date('13-2月-03'),'DAY')

    01-1月-03

    01-2月-03

    16-2月-03

    TRUNC

    对日期按指定方式进行截断

    trunc(to_date('06-2月-03'),'YEAR')

    trunc(to_date('06-2月-03'),'MONTH')

    trunc(to_date('06-2月-03'),'DAY')

    01-1月-03

    01-2月-03

    02-2月-03

     4、转换函数

     

    日期格式元素

    含义

    YYYYYY

    代表四位、两位数字的年份

    MM

    用数字表示的月份

    MON

    月份的缩写、对中文月份来说就是全称

    DD

    数字表示的日

    DY

    星期的缩写,对中文的星期来说就是全称

    HH24HH12

    12小时或者24小时进制下的时间

    MI

    分钟数

    SS

    秒数

    数字格式元素

    含义

    9

    代表一位数字,如果该位没有数字则不进行显示,但对于小数点后面的部分仍会强制显示

    0

    代表一位数字,如果该位没有数字则强制显示0

    $

    显示美元符号

    L

    显示本地货币符号

    .

    显示小数点

    ,

    显示千分位符号

     

      

     其他函数

     nvl() nvl2() decode()

    函  数

    功  能

    NVL(EXP1, EXP2)

    如果exp1的值为null,则返回exp2的值,否则返回exp1的值 

    NVL2(EXP1, EXP2, EXP3)

    如果exp1的值为null,则返回exp2的值,否则返回exp3的值

    DECODE(VALUE,IF1,THEN1,

    IF2,THEN2,……,ELSE)  

    如果value的值为if1,则返回then1的值,如果value的值为if2,则返回then2的值,……,否则返回else值

     

    多行函数

    单行函数学习
    				--查询工作为SALESMAN,MANAGER并且工资大于2500的员工信息
    				--1、使用小括号提升where筛选条件的执行优先级别
    				--2、and的优先级别高于or
    				select * from emp 
    				select * from emp where job='SALESMAN' or job='MANAGER' and sal>2500
    				select * from emp where (job='SALESMAN' or job='MANAGER') and sal>2500
    				-----------------------------------------------------------------------------------------------------------
    				使用函数 单行函数 多行函数 转换函数 其他函数
    				--单行函数学习:不改变原始数据,只改变结果
    				---1、字符函数
    				select * from emp;
    				select INITCAP(ename) from emp;--initcap函数将首字母大写
    				select lower(ename)from emp;--lower 字母小写
    				select replace(ename,'S','M')  from emp;--replace 替换
    				--2、数值函数--Math
    				----伪表 dual
    				select * from dual
    				select abs(-3) 绝对值,ceil(3.1415926)向上取整,floor(3.1415926)向下取整,power(2,3)幂,round(3.4)四舍五入 from dual
    				--3、日期函数
    				select months_between('13-12月-2016','13-10月-2016') from dual--months_between两个日期之间的月份数
    多行函数学习
    				多行函数 :
    				  max: max(字段名) 返回此字段的最大值
    				  min:min(字段名) 返回此字段的最小值
    				  avg:avg(字段名) 返回平均值
    				  sum:sum(字段名) 返回字段的和
    				  count:count
    							--count(*),用来查询表中有多少条记录
    							--count(字段名),用来查询某个字段有值的个数
    							--count(distinct 字段名),可以先去除重复再计数。
    				  注意:
    					   --多行函数不能和普通字段直接出现在查询语句中,除非group by 
    					   --多行函数和单行函数不能直接出现在查询语句中,除非group by        
    				查看员工的最高工资
    					select max(sal),ename from emp--多行函数不能和普通字段直接出现在查询语句中,除非group by
    					select max(sal),lower(ename) from emp--多行函数和单行函数不能直接出现在查询语句中,除非group by
    					select ename from emp
    				查看员工的最低工资
    					select min(sal) from emp
    				查看员工的平均工资
    					select avg(sal) from emp
    				查看所有的员工工资之和
    					select sum(sal) from emp
    				查询公司有多少员工
    					select * from emp
    					select count(*) from emp--使用count(*)来查看一张表中有多少条记录
    				查询有津贴的员工人数
    					select count(comm) from emp--使用count(字段名),查询该字段有值的记录数
    					select count(ename) from emp
    				查询公司有多少工作种类
    					select count(job) from emp
    					select  count(distinct job) from emp 
    

      

    转换函数学习
    				转换函数:在转换的时候改变的是数据的类型,数据内容不会改变,可以指定格式。
    				1、to_number:将数字字符转换为数字类型的数值,to_number(数字字符)
    				2、to_char:将数字转换为字符类型,将日期转换为字符类型 to_char(数字/日期)
    				3、to_date:将字符类型的日期转换为日期类型: to_date(char)
    				--------------------------------------------------------------------------------------
    				number-->char 转换的时候使用的是默认格式,
    					select  to_char(123) from dual--将数字转换为字符类型,使用to_char(number)
    					select sal, to_char(sal) from emp
    				number-->char 使用指定的格式 
    					to_char(number,'格式'),格式:
    							$代表美元符,9代码数字占位。例如,L999,999,999表示三位一组的显示方式L代表人民币符号,0代表保留数字个数,不足使用0补充。
    															 
    							select to_char(sal),to_char(sal,'L999,999,999') from emp
    							select to_char(sal),to_char(sal,'L0000.00') from emp
    				char--->number  to_number(数字字符)
    							select to_number('123') from dual
    				
    				char--->date,转换的字符必须是日期格式的字符串,默认格式 dd-mm-yyyy
    							注意:因为字符串有很多,所以在字符转换为日期的时候,需要指定格式,因为日期是具备一定格式的字符组合。
    								字符转换为日期的时候,指定的格式为字符的日期顺序,无需指定间隔符。
    								yyyy:表示年  mm:表示月   dd表示日
    							select to_date('05-12月-2016') from dual;
    							select to_date('2016-05-12','yyyy-mm-dd') from dual--使用指定的格式将指定的日期字符串转换为日期
    							select to_date('12-05-2016','mm/dd/yyyy') from dual
    				date--->char
    							注意:因为日期本身就具备一定的格式在不是指定格式的情况下会默认使用dd-mm-yyyy格式显示数据
    								指定的格式会作为日期转换为字符串类型的显示格式存在。例如:
    								yyyy-mm-dd'   ‘2016-12-05’
    								yyyy/mm/dd'    '2016/12/05'
    								yyyy"年"mm"月"dd"日"'     2016年12月05日
    							select hiredate,to_char(hiredate) from emp--日期转换为字符的时候,不指定格式使用默认格式:dd-mm-yyyy
    							select hiredate,to_char(hiredate,'yyyy-mm-dd') from emp;--使用指定格式将日期转换为字符串类型
    							select hiredate,to_char(hiredate,'yyyy/mm/dd') from emp;--使用指定格式将日期转换为字符串类型
    							select hiredate,to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp;--使用指定格式将日期转换为字符串类型
    							
    							查询入职日期在81年10月20日后的员工信息
    								第一种:自动转型
    							select * from emp where hiredate>'20-10月-1981'
    								第二种:将日期转换为字符串
    							select * from emp where to_char(hiredate,'yyyy-mm-dd')>'1981-10-20'
    								第三种:
    							select * from emp where hiredate>to_date('1981-10-20','yyyy/mm/dd')
    其他函数:
    				单行函数:lower
    				多行函数:min max sum avg count
    				转换函数:to_number to_char to_date
    				-----------------------------------------------------------------------------------------
    				其他函数:
    					1、nvl():nvl(字段名,执行)--相当于java中的if条件判断
    					2、nvl2():nvl2(字段名,值,值)--相当于java中的If(){}else{}判断
    					3、decode():decode(字段名,条件1,执行内容1,条件2,执行内容2,条件3,执行内容3,默认执行内容)
    					相当于java中if(){}else if(){}else if(){}...else{}
    				查询所有员工的月薪及姓名和工作
    					select * from emp
    					select ename,sal 基本工资,comm 绩效,sal+comm 月薪 from emp
    					select ename,sal 基本工资,comm 绩效,sal+nvl(comm,0)月薪 from emp
    				查询所有员工的月薪及姓名和工作
    					select ename,sal 基本工资,comm 绩效,nvl2(comm,sal+comm,sal)月薪 from emp
    				显示员工的职称
    					select ename,job,decode(job,'MANAGER','经理','SALESMAN','销售人员','普通员工') from emp
    

      

     

     

     


    单行函数分类 字符函数 数值函数 日期函数 转换函数 通用函数 多行函数 sum() avg() 仅适用数值型 count() max() min() 适用任何类型数据

      

     

  • 相关阅读:
    [php]php时间戳当中关于时区的问题
    [jQuery] jQuery如何获取同一个类标签的所有的值
    sed 命令基础
    Docker 学习第6课
    Docker 学习第五课
    Docker 学习第四课
    Docker 学习第三课
    Docker 学习第二课
    Docker学习第一课
    XdeBug的使用
  • 原文地址:https://www.cnblogs.com/eadela/p/11436066.html
Copyright © 2020-2023  润新知