博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中的单行函数
阅读量:6464 次
发布时间:2019-06-23

本文共 1286 字,大约阅读时间需要 4 分钟。

字符串函数:

 

注意SUBSTR 如果向要从后向前截取,可以使用负数来表示

例如:SUBSTR('helloword',-3),表示截取最后三个字符,不写长度.默认从开始截取到字符串的末尾.

以上函数除了INITCAP以外都可以在mysql中使用

程序中的字符串,下标从0开始,数据库中的下标从1开始,Oracle中,如果下标写0.则按照1处理,在mysql中,不会返回任何结果

数学函数

注意,ROUND,和TRUNC函数都可以是用以下格式ROUND(889.99,-2) 这样中格式,小数位数可以是负数,当小数位数是负数时,例子中的结果是900

在mysql中没有TRUNC函数,有功能相同的TRUNCATE函数,用法也和Oracle中的TRUNC函数相同.

时间函数

在日期中有如下三个操作:

  日期+数字=日期(表示若干天之后的天数)

  日期-数字=日期(表示若干天前的天数)

  日期-日期=天数(表示两个日期相差多少天)

但是这种计算的结果不精确,在oracle中不精确,在mysql中结果会是一种错误的结果

所以给出以下日期函数

使用日期函数进行日期的计算会很精确,但是以上的函数在mysql中只有LAST_DAY可以使用

 

 转换函数

 

 

以上函数在mysql中不存在,只有Oracle中有

例如我想要将现在的时间转换成字符串

SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM dual;

我们也可以从日期中获取年.月,日

SELECT TO_CHAR(SYSDATE,'yyyy') from dual;

 

 还可以用来格式化数字

SELECT TO_CHAR(5635192189372198731,'999,999,999,999,999,999,999,999,999') FROM dual;

数字9.是任意数字的标记,在格式化数字或者货币的时候,定义的格式的字符串中,标记的位数必须大于需要转换的数据的位数

货币的转换

本地货币的标记是L,任意数字的标记是9

 

通用函数

NAL函数

如果我们要查询员工表中,员工的编号,员工的姓名,员工的年薪(  年薪=(月薪+绩效)*12  )

但是有些员工没有绩效,这样的话,最后返回的结果,没有绩效的员工就没有年薪

命令:select empno,ename,(sal+comm)*12 INCOME from emp;

这时候我们就可以使用NVL函数

命令select empno,ename,(sal+NVL(comm,0))*12 INCOME from emp;

DECODE函数,这个函数比较重要,面试的时候可能会被问到

完整的员工信息如下:

如果我们想要查询员工编号,员工姓名,员工的job,但是员工的job名称却是英文,我们看着不太好看,想要将其显示为中文

命令: Select empno,ename,job,DECODE(job,'CLERK','办事人员','SALESMAN','销售人员','MANAGER','经理','--') 职位 From emp ;

 

转载地址:http://ljezo.baihongyu.com/

你可能感兴趣的文章
Windows平台分布式架构实践 - 负载均衡
查看>>
如何让LinearLayout也有类似Button的点击效果?
查看>>
JAVA读取文件方法大全
查看>>
寻找最小的k个数
查看>>
CSS3中的动画效果记录
查看>>
CI框架整合微信公共平台接口
查看>>
request.getScheme()的使用方法
查看>>
Android快速开发常用知识点系列目录
查看>>
Java ActiveMQ队列模式案例
查看>>
EJB2的配置
查看>>
最容易理解的对卷积(convolution)的解释
查看>>
《机器学习实战》知识点笔记目录
查看>>
Linux操作系统实时性分析
查看>>
完美解决NC502手工sql的查询引擎排序及合计问题
查看>>
Tiny语言执行环境TM机源码
查看>>
PE文件之资源讲解
查看>>
windows 7/mac编译cocos2d-x-3.2*的android工程报错
查看>>
MYSQL导入导出.sql文件(转)
查看>>
git review报错一例
查看>>
Tomcat在Linux上的安装与配置
查看>>