zoukankan      html  css  js  c++  java
  • oracle常用函数总结(一)

    最近在读数据库存储过程,或者在xml里写sql时用到数据库函数,笔者觉得有必要总结一下,当然有的函数笔者也很懵逼,不过可以问度娘啊!好了!开始正题。

    select nvl(null,1)s from dual;--1 若nvl第一个参数为空或'',则返回第二个元素
    select nvl2(null,2,1)s from dual;--1 若nvl2 第一个元素为空或'',则返回第二个元素
    
    select decode('',111,1000,200,2000,0)s from dual;--如果seed为111,则取1000;为200,取2000;其它取0
    
    select instr('lidelinlidelin','i',3,3)s from dual;--13 查找i在字符串从第三个位置起第三次出现的下标
    select instr('lidelinlidelin','w',3)s from dual;--0 查找w在字符串从第三个位置起第一次出现的下标
    
    select substr('lidelinlidelin',2,3)s from dual;--ide 截取字符串,从第二个开始,取三个
    
    select length('delin Li') s from dual;--8 查看字符串长度
    select lengthb('delin Li') s from dual;--8 查看字符串长度
    
    select ascii('as')s from dual;--97 返回第一个字母的ASCII码
    select chr(97)s from dual;--a 函数返回十进制表示的字符
    
    select concat('delin',' Li')s from dual;--delin Li 将字符串拼接
    select 'Hello! '||'hello world!' from dual;-- Hello! hello world!字符串连接
    select initcap('delin li')s from dual;--Delin Li 将每个单词的第一个字母大写其它字母小写返回。单词由空格,控制字符,标点符号分隔
    
    select lower('LIDELIN')s from dual;-- lidelin 将字母变为小写
    select upper('lidelin')s from dual;--LIDELIN 将字母变为大写
    select initcap('efg')s from dual; --Efg 将首字母大写
    
    select lpad('lidelin',9,'A')s from dual;--AAlidelin 小于9个字符时左边补A
    select rpad('lidelin',9,'A')s from dual;--lidelinAA 小于9个字符时右边补A
    
    select ltrim('000lidelin','0')s from dual;--lidelin 将左边0取消
    select rtrim('lidelin000','0')s from dual;--lidelin 将右边0取消
    select trim(' delin Li ')s from dual; --delin Li 将字符串两边空格去掉
    select trim(leading 9 from 9998767999) s1,trim(trailing 9 from 9998767999) s2,trim(9 from 9998767999) s3 from dual; -- 8767999 9998767 8767
    
    select replace('lidelin','l','L')s from dual;--LideLin 将字符串中l替换为L
    
    select soundex('lidelin')s from dual;--L345 返回字符串参数的语音表示形式
    
    select translate('lidelin','dn','s')s from dual;--liseli 字符串中字符存在于为'dn'中时,替换为对应值,d变为s,n变为空
    
    select round(123.456,1)s from dual;--123.5 小数位保留一位四舍五入
    select trunc(123.456,1)s from dual;--123.4 小数保留一位不不进行四舍五入
    select mod(9,5)s from dual; --求余
    select trunc(65/33)s from dual;-- 1 取整 
    select ceil(65/60)s from dual;-- 2 取整
    
    select sign(-2.1)s from dual;-- -1 判断数字是否为正数 -1否
    select sign(2.1)s from dual;-- 1 判断数字是否为正数 1是
    
    select user from dual;--MTRSCDE 查询当前数据库登陆账户名
    select vsize('lidelin')s from dual;--7 返回表达式所需的字节数
    select nullif('lidelin','lidelin')s from dual;-- 空 值相等返空,否则返回第一个值
    select coalesce('','111','e','lidelin')s from dual;-- 111 返回列表中第一个非空表达式
    
    --日期和字符转换函数用法(to_date,to_char)
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; -- 2017-12-04 15:02:25 日期转化为字符串 
    select to_char(sysdate,'yyyy') as nowYear from dual; -- 2017 获取时间的年 
    select to_char(sysdate,'mm') as nowMonth from dual; -- 12 获取时间的月 
    select to_char(sysdate,'dd') as nowDay from dual; -- 04 获取时间的日 
    select to_char(sysdate,'hh24') as nowHour from dual; -- 15 获取时间的时 
    select to_char(sysdate,'mi') as nowMinute from dual; -- 02获取时间的分 
    select to_char(sysdate,'ss') as nowSecond from dual; -- 25获取时间的秒
    
    select to_date('2017-12-04 15:02:25','yyyy-mm-dd hh24:mi:ss') as nowTime from dual; -- 2017/12/4 15:02:25 字符串转化为日期 
    select to_char(sysdate,'yyyy-mm-dd q ww w hh24:mi:ss') as nowTime from dual; -- 2017-12-04 4 49 1 15:07:33 2017年 第四季度,当年第49个周,当月第1个周 15点07分33秒
    
    select to_char(to_date('2017-12-04','yyyy-mm-dd'),'day')s from dual; --星期一 
    select to_char(to_date('2017-12-04','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American')s from dual; --monday
    
    select floor(sysdate - to_date('2017-12-01','yyyy-mm-dd')) days from dual;-- 3 两个日期间的天数
    select months_between(to_date('2017-10-01','yyyy-mm-dd'),to_date('2017-12-01','yyyy-mm-dd')) months FROM DUAL; -- -2 两个日期间的月数

    由于时间紧促,在这里就总结一下部分常用oracle函数,当然大家觉得那些有必要添加进去的函数,希望朋友们能提出来!如有错误,还望斧正!

  • 相关阅读:
    学习进度笔记
    博雅数据机器学习07
    学习进度笔记
    博雅数据机器学习06
    《一级架构师》阅读笔记
    学习进度笔记
    博雅数据机器学习05
    递归的概念
    CSS学习笔记3:选择器及优先级
    CSS学习笔记2:伪类
  • 原文地址:https://www.cnblogs.com/lidelin/p/7977459.html
Copyright © 2011-2022 走看看