zoukankan      html  css  js  c++  java
  • 数据库(学习整理)----5--Oracle常用的组函数

    其他:
    	1、oracle中下标是从1开始的,Java下标是从0开始的
    
    
    函数分类:
    	日期函数
    	字符函数
    	转换函数
    	数学函数
    	系统函数
    
    ---在当前月份上面:增加、减少月份
    select add_months(sysdate,1) from dual;
    
    ---2个日期之间相差的月份数
    select months_between('1-5月-2016',sysdate) from dual;
    
    ---获取指定时间的月末日期
    select last_day('15-7月-2016') from dual;
    
    ----获取当前时间的近似时间
    select round(sysdate) from dual;
    select round(sysdate,'yyyy') from dual;
    select round(sysdate,'mm') from dual;
    select round(sysdate,'dd') from dual;
    
    
    ----获取指定日期后的下一个  星期几的日期
    select next_day(sysdate,'星期二') from dual;
    
    
    ----从指定日期(date格式)的数据上截取指定格式的日期(返回date)
    select trunc(sysdate,'yyyy') from dual;
    select trunc(sysdate,'mm') from dual;
    select trunc(sysdate,'dd') from dual;
    
    ---- 从当前日期提取一日期类型
    select EXTRACT(year from sysdate) from dual;
    select EXTRACT(month from sysdate) from dual;
    select EXTRACT(day from sysdate) from dual;
    
    ----转换字符:chr()数字转字符,ascii()字符转数字
    select chr(100) from dual;
    select ascii('d') from dual;
    
    
    ----除去左右指定字符
    select ltrim('  hello  ') from dual;
    select rtrim('  hello  ') from dual;
    select trim('  hello  ') from dual;
    
    --重载
    select ltrim('111hello2221','1') from dual;
    
    select rtrim('111hello2221','21') from dual;--右边只要有2、1就会被除去
    
    select trim('1' from '111hello2221') from dual;
    
    ----字符替换:translate(不推荐使用)
    select translate('Hello','l','A') from dual;    --HeAAo
    select translate('Hello','ll','A') from dual;    --HeAAo
    
    ----字符替换:replace(推荐使用)
    select replace('Hello','l','A') from dual;    --HeAAo
    select replace('Hello','ll','A') from dual;    --HeAo
    
    --------字符替换:decode(不推荐使用)
    select replace('Hello','l','A') from dual;    --HeAAo
    select replace('Hello','Hello','A') from dual;    --A
    -----搜索一个字符数据中的指定字符的下标(一旦找到即可返回,不会接着向下去找了)
    select instr('我是Yan Jason','a') from dual;---4
    
    select instr('我是Yan Jason','K') from dual;---0
    
    ----截取字符串数据
    
    --从指定的位置开始截取
    select substr('我这里是测试数据Hello',2) from dual;--这里是测试数据Hello
    
    --从指定的位置开始截取  指定截取的长度
    select substr('我这里是测试数据Hello',2,2) from dual;--这里
    
    
    ----字符串的拼接:
    select concat('我是天使','左翼-彦') from dual;----我是天使左翼-彦
    
    ----数据的左右补充
    select lpad('天使彦',10,'*') from dual;---****天使彦
    select rpad('天使彦',10,'*') from dual;---天使彦****

      

    -----转换函数
    --to_char() 转数值型、日期型、字符型
    select to_char(sysdate,'yyyy') from dual;
    select to_char(sysdate,'yyyy-MM') from dual;
    select to_char(sysdate,'yyyy-MM-dd') from dual;
    select to_char(sysdate,'yyyy-MMdd HH:mm:ss') from dual;--2016-0715 10:07:49
    select to_char(sysdate,'yyyy"年"MM"月"dd"日" HH"时"mm"分"ss"秒"') from dual;--2016年07月15日 10时07分40秒
    select to_char(sysdate,'yyyy-MM-dd HH:mm:ss') from dual;
    
    select to_char(123) from dual;
    select to_char('1-2-3') from dual;
    
    --to_number() 只能转:字符型
    select to_number(121) from dual; --131.2
    select to_number('131.2') from dual;--131.2
    
    
    --to_date() 【最常用】 
    select to_date('1993-09-18','yyyy-mm-dd') from dual;--1993/9/18
    select to_date('1993-09-18','yyyy-mm-dd HH24:mi:ss') from dual;--1993/9/18
    select to_date('2016-06-12 13:23:34','yyyy-mm-dd HH24:mi:ss') from dual;--2016/6/12 13:23:34
    select to_date('2016-06-12 11:23:34','yyyy-mm-dd HH:mi:ss') from dual;--2016/6/12 11:23:34
    
    ----非空转换:NVL(expor1,expor2) NVL2(expor1,expor2,expor3) NullIF(expor1,expor2)
    --NVL(expor1,expor2)【推荐使用】
    select nvl('Jason','Yan') as 测试值 from dual;--Jason
    select nvl('','Yan') as 测试值 from dual; --Yan
    select nvl(null,'Yan') as 测试值 from dual; --Yan
    
    
    --NVL2(expor1,expor2,expor3)
    select nvl2('Jason','Yan','天使') as 测试值 from dual; --Yan
    select nvl2('','Yan','天使') as 测试值 from dual; --天使
    select nvl2(null,'Yan','天使') as 测试值 from dual; --天使
    
    
    --NullIF(expor1,expor2)
    select NullIF('Jason','Yan') as 测试值 from dual; --Jason
    select NullIF('Yan','Yan') as 测试值 from dual; --判断相同:返回null
    select NullIF('A','Yan') as 测试值 from dual;
    select NullIF('B','Yan') as 测试值 from dual; --判断不同:返回第一个参数
  • 相关阅读:
    换肤动画
    手风琴动画图
    Ajax传值原理.aspx文档
    三层框架中单表的增删改查
    用ajax传JSON数据
    利用ajax进行post传值,登录QQ和密码代码
    ado.net增删改查及存储过程
    常用的SQL语句
    金融
    写你的简历应该注意什么
  • 原文地址:https://www.cnblogs.com/newwind/p/5674958.html
Copyright © 2011-2022 走看看