oracle 单行函数

操作数据库:最快的是sql语句

1.字符函数

select lower('Hello World')  转小写 , upper('hello world ') 转大写,initcap('hello world') 首字母大写 from dual;

2.字符控制函数

substr(a,b) 从a中第b位开始取  select sub('123457890' ,2) 子串 from dual;

substr(a,b,c) 从a中第b位开始取c位

instr(a,b) 从a串中找b  找到返回位置  从1开始  select instr('Hello world' ,'ll')  位置 from dual;

length 字符数  lengthb 字节数  select length("aaaaa") 字符数  from dual;

lpad左填充  rpad 右填充   select lpad('abc',10,'*')  左填充,rpad('abc','10','_')  右填充  from dual;

trim()   select trim('H' from 'Hello WorldH') from dual;

replace()   select replace('hello world','l','*') from dual;

3.数字函数

round(45.761, 2)  45.76   round(45.761, -2)  0  四舍五入

trunc(45.761, 2)  45.76    trunc(45.761, -1)  40  截断

mod(1600,300)  100  求余

4.日期

mysql 中 有time 和datetime  oracle中只有date(包含日期和时间)

查询当前时间   sysdate     select sysdate from dual; 默认格式是 DD-MON-RR

格式化  to_char   select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

5.日期的数学运算

  1)在日期上加上或减去一个数字(单位是天)结果仍为日期

     select sysdate-1 昨天,sysdate 今天,sysdate+1 明天 from dual;

  2)日期可以相减,不能相加 

    举例说明:计算员工的工龄:天 星期  月 年

    select ename 名字,hiredate 入职日期,sysdate-hiredate  天,months_between(systdate,hiredate)  月 from dual;

6.日期函数

months_between 两个日期相差的月份 

add_months 向指定日期中加上若干月数

last_day本月的最后一天 

next_day 下一个星期日  select next_day(sysdate,'星期二') from dual;应用在每个星期一自动备份数据...分布式数据库 快照  触发器

round()   round(sysdate,'MONTH')   round(sysdate,'year')

trunc()

7.转换函数

  1)数据类型的转换  

      a.隐士数据类型转换 

    

       b.显式数据转换

        

    to_char 函数  对日期的转换  to_char(date,'format_model')

      

      select to_char(sysdate,'yyyy-mm-dd hh24:mi;ss"今天是"day') from dual;

       to_char 函数 对数字的处理

           to_char(number,'format_model')

        

        查询员工薪水 (两位小数,千位符,本地货币代码)

        select to_char(sal,'L9,999.99') from emp;

  反过来就是to_number  to_date

8.通用函数(适用于任意数据类型,同时也适用于空值)

  nvl(expr1,expr2)虑空

  nvl2(expr1,expr2,expr3)虑空

  nullif(expr1,expr2) 当expr1等于expr2的时候返回null,不等就返回expr1

  coalesce(expr1,expr2,expr3,...)  返回第一个不为空的值

9.条件表达式

  需求:根据员工的职位涨工资,返回涨之前和涨之后的工资

  case 

      

   

  decode  oracle  自己的函数

   

   

原文地址:https://www.cnblogs.com/jycjy/p/6714640.html