侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Oracle常用的单行函数应用技巧总结

数据库  /  管理员 发布于 3年前   145

单行函数;
   字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)

一:字符函数:

   .UPPER(字符串) 将字符串转为大写   .LOWER (字符串) 将字符串转为小写    .INITCAP(字符串) 将首字母大写   .LENGTH (字符串) 字符串的长度   .REPLACE(字符串,'A','_') 将字符串字符A转换成_   .SUBSTR (字符串,开始截取点,结束截取点)字符串的截取

 

 

oracle验证字符串,必须输入完整的sql语句,所以在oracle数据库中为了用户的查询方便,专门提供了一个虚拟的"dual"虚拟表

 

实例:转大写的函数(UPPER) select UPPER('hello') from dual;实例:将emp表的名字大写 select UPPER(ename) from emp;实例;将emp表姓名小写select LOWER(ename) from emp;实例:将姓名的首字母大写select initcap(ename) from emp;实例:查询字符长度为5的数据select * from emp where length(ename)=5;实例:将字母a用下划线替换select replace(ename,'a','_') from emp;

 

字符串的截取操作的两种语法:
      .语法一substr(字符串,开始点)表示从开始点一直截取到结尾
 实例; 从第三个字母开始截取
 select ename ,substr(ename,3) from emp;

     .语法二substr(字符串,开始点,结束点)表示从开始点截取一直截取点结束点

实例:截取前3个
select ename ,substr(ename,0,3) from emp;
select ename ,substr(ename,1,3) from emp;

Oracle里面的0和1都是代表第一个


实例:截取姓名的后三个字母
思路一:字符的长度-2
 

select ename, substr(ename,length(ename)-2) from emp;

 

思路二:设置负数,-3 从倒数截取第三个截取

select ename ,substr(ename,-3) from emp;substr从0或者是1开始截取正确吗? .substr从0和1开始截取的效果是一样的 .substr还可以设置负数从后面开始截

 

-----------------------------------------------------------------------------------------

二: 数字函数:

   ROUND(数字):四舍五入的操作   trunc(数字):舍弃指定的小树   mod(数字) :取摸,取余数实例:round函数select round(900.23),round(-120,90),round(900.23,2),round(-999.89,-3) from dual;实例:trunc函数select trunc(900.23),trunc(-120,90),trunc(900.23,2),trunc(-999.89,-2) from dual;实例:mod函数select mod(10,3) from dual;

 

----------------------------------------------------

三: 日期函数:

获得当前日期"sysdate"select sysdate from dual; .日期+数字=日期 若干天后的天数 select sysdate+3 from dual;.日期-数字=日期 若干天前的天数  select sysdate from dual;.日期-日期=天数实例:求出每个雇员到今天的天数select ename ,hiredate,sysdate-hiredate from emp;日期的操作函数.last_day(日期) 指定日期的最后一天实例:求出本月的最后一天select last_day(sysdate) from dual;.next_day(日期,'星期数')求出下一个星期数的日期select next_day(sysdate,'星期一') from dual;.add_months(日期,数字);求出若干月后的日期select add_months(sysdate,4) from dual;.months_between(日期1,日期2);日期1 到日期2之间的天数select ename,hiredate, trunc(months_between(sysdate,hiredate)) from emp;

 

------------------------------------------------------------------

四: 转换函数(核心):

 数字,字符串,日期  三种转换函数 .to_char(字符串,字符串格式) 将日期转化为字符串 .to_date(字符串,格式字符) 将数字转换为date数据显示 .to_number(字符串) 将字符串转化为数字1,to_char函数 实例: 查询系统时间select sysdate from dual;使用指定的格式显示 年yyyy  月mm 日 dd 时 hh 分 mi 秒ss 实例:将时间转化为年-月-日select to_char(sysdate,'yyyy-mm-dd') from dual; 数据可能会出现前导0,消除前导加一个"fm"实例:将时间转化为年-月-日 时-分-秒select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;此时显示的是字符串而不是数字2,to_date函数 实例;将1890-8-18转为数字类型的显示select to_date('1890-8-18','yyyy-mm-dd') from emp;3,to_number函数:Oracle很少用到

 

 

---------------------------------------------------------------

五:  通用函数(核心)

.nvl函数  将null转为指定的字符  实例;将emp表中的comm为null的转为0  select nvl(comm,0) from emp;.nvl2函数nvl2(comm,0,2)如果comm为null就转化为0,否则就转化为2 select nvl2(comm,0,2) from emp;

 decode函数

decode函数,多数值判断 decode语法:     decode(job,'数值','转化的名称','数值','转化的名'..);实例;将emp表中的职位用中文显示 select  ename,sal,job,decode(job,'CLERK','清洁工') from emp; 结果:ENAME            SAL JOB       DECODE(JOB,'CLERK','清洁工')---------- --------- --------- ----------------------------SMITH        1000.00 CLERK     清洁工ALLEN        1600.00 SALESMAN  WARD         1250.00 SALESMAN  JONES        2975.00 MANAGER   MARTIN       1250.00 SALESMAN  BLAKE        2850.00 MANAGER   CLARK        2450.00 MANAGER   SCOTT        3000.00 ANALYST   KING         5000.00 PRESIDENT TURNER       1500.00 SALESMAN  ADAMS        1100.00 CLERK     清洁工JAMES         950.00 CLERK     清洁工FORD         3000.00 ANALYST   MILLER       1300.00 CLERK     清洁工

 

 


  • 上一条:
    简单表单提交验证效果js实现
    下一条:
    Oracle显示根据高考分数模拟录取
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • mysql中sql_mode的各模式浅析(0个评论)
    • 预处理之SQL参数化查询是如何防止SQL注入的浅析(0个评论)
    • 使用Navicat把mysql5.7版本的数据库导入至mysql8.1版本中流程步骤(0个评论)
    • 在mysql中设置表字段中COLLATE、CHARSET详解(0个评论)
    • 在mysql获得每天最接近凌晨4点0分0秒的数据示例代码(0个评论)
    • 近期文章
    • 在laravel框架中的5个HTTP客户端技巧分享(0个评论)
    • 在go语言中使用FFmpeg库实现PCM音频文件编码为mp3格式文件流程步骤(0个评论)
    • gopacket免安装Pcap实现驱动层流量抓包流程步骤(0个评论)
    • 在laravel项目中实现密码强度验证功能推荐扩展包:password-strength(0个评论)
    • 在go语言中用filepath.Match()函数以通配符模式匹配字符串示例(0个评论)
    • Laravel Response Classes 响应类使用优化浅析(0个评论)
    • mysql中sql_mode的各模式浅析(0个评论)
    • 百度文心一言今天发布,个人第一批内测体验记录,不好别打我(0个评论)
    • 嘿加密世界让我们谈谈在共识中将中本聪主流化(0个评论)
    • 在go语言中寻找两个切片或数组中的相同元素/共同点/交集并集示例代码(0个评论)
    • 近期评论
    • 博主 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..
    • xiaoB 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..
    • BUG4 在

      你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..
    • 博主 在

      go语言+beego框架中获取get,post请求的所有参数中评论 @ t1  直接在router.go文件中配就ok..
    • Jade 在

      如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客