• oracle 语法


    NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,否则返回E2。E2和E3类型不同的话,E3会转换为E2的类型。

    oracle 函数介绍之nullif

    格式: nullif(expr1,expr2)  等价于 "case when expr1 = expr 2 then null else expr1 end",相等返回NULL,不等返回expr1.
    限制: expr1不能是标识符null,录入nullif(null,expr2)那么会提示错误。
               expr1,expr2 都必须是一个变量或者是一个常量表达式,不能是逻辑表达式。

    Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

    From talbename

    intersect ,union, union all, minus 
    select * from emp intersect select * from emp where deptno=10 ;
    select * from emp minus select * from emp where deptno=10;
    select * from emp where deptno=10 union select * from emp where deptno in (10,20); --不包括重复行 
    select * from emp where deptno=10 union all select * from emp where deptno in (10,20); --包括重复行

    1. 日期和字符转换函数用法(to_date,to_char)
             
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串   
    select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年   
    select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月   
    select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日   
    select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时   
    select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分   
    select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒

    select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual//

    一年的第几天      
       select TO_CHAR(SYSDATE,'DDD'),sysdate from dual

    查找月的第一天,最后一天
         SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,
           Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,
           Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,
           LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month
       FROM dual;

    1,字符串截取
    select substr('abcdef',1,3) from dual
    2,查找子串位置
    select instr('abcfdgfdhd','fd') from dual
    3,字符串连接
    select 'HELLO'||'hello world' from dual;
    4, 1)去掉字符串中的空格
    select ltrim(' abc') s1,
    rtrim('zhang ') s2,
    trim(' zhang ') s3 from dual
    2)去掉前导和后缀
    select trim(leading 9 from 9998767999) s1,
    trim(trailing 9 from 9998767999) s2,
    trim(9 from 9998767999) s3 from dual;

    5,返回字符串首字母的Ascii值
    select ascii('a') from dual
    6,返回ascii值对应的字母
    select chr(97) from dual
    7,计算字符串长度
    select length('abcdef') from dual

    8,initcap(首字母变大写) ,lower(变小写),upper(变大写)
    select lower('ABC') s1,
    upper('def') s2,
    initcap('efg') s3
    from dual;
    9,Replace
    select replace('abc','b','xy') from dual;

    10,translate
    select translate('abc','b','xx') from dual; -- x是1位

    11,lpad [左添充] rpad [右填充](用于控制输出格式)
    select lpad('func',15,'=') s1, rpad('func',15,'-') s2 from dual;
    select lpad(dname,14,'=') from dept;

    四.数字函数
    1,取整函数(ceil 向上取整,floor 向下取整)
    select ceil(66.6) N1,floor(66.6) N2 from dual;

    2, 取幂(power) 和 求平方根(sqrt)
    select power(3,2) N1,sqrt(9) N2 from dual;

    3,求余
    select mod(9,5) from dual;

    4,返回固定小数位数 (round:四舍五入,trunc:直接截断)
    select round(66.667,2) N1,trunc(66.667,2) N2 from dual;

    5,返回值的符号(正数返回为1,负数为-1)
    select sign(-32),sign(293) from dual;

    2, to_date()[将字符类型转换为日期类型]
    insert into emp(empno,hiredate) values(8000,to_date('2004-10-10','yyyy-mm-dd'));

    3, to_number() 转换为数字类型
    select to_number(to_char(sysdate,'hh12')) from dual; //以数字显示的小时数

    1.字符函数

    (1)concat(str1,str2)字符串拼接函数

    select concat('Hello ','World') from dual;
    --等价于
    select 'Hello '||'World' from dual;

    (2)initcap(str)将每个单词首字母大写,其他字母小写

    select initcap('hello world!') from dual; --返回结果为'Hello World!'
    select initcap('HELLO WORLD!') from dual; --返回结果为'Hello World!'
  • 相关阅读:
    影院售票系统
    返璞归真
    【C++】【STL】【map】基础知识干货
    书签-技术类
    正则表达式-正则表达式校验金额最多保留两位小数
    winCommand-cmd杀死进程
    idea快捷键-总结
    接口封装-泛型方法、泛型接口、lambda表达式【类似ios传递block】
    treeMap-get返回null,因为比较器出问题
    git-linux一个月更新80万行代码,如何保证项目稳健?
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/6874835.html
Copyright © 2020-2023  润新知