Oracle中单值函数有四种:字符函数,数字函数,日期函数,转换函数

字符函数Oracle中对字符类型的数据进行处理的函数

lower:将字符类型的数据全部转为小写

例如:select lower(name) from test查找出test表中的name字段 并且将它全部变为小写

upper:将字符类型的数据全部转为大写

例如:select upper(name) from test查找出test表中的name字段 并且将它全部变为大写

initcap:将字符串中首字母变为大写

例如:select  initcap('hello') from dual
结果:Hello

dual是哑表,是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录,任何用户都可以操作,当你不需要从具体表中取数据时,例如计算1+2的值,就可以用到dual表

concat:连接字符串

例如:  select concat('hello','world') from dual;
结果:helloworld

substr:获取字符串的字串

格式:substr(字符串,截取开始位置,截取长度)
例如:select substr('helloworld',2,4) from dual;
结果:ello

length:获取字符串长度

例如:select length('hello') from dual;
结果是:5

nvl函数:nvl(arg,value)如果arg为空,就用value值来表示arg的值

例如:select last_name,nvl(salary,0) from test;
结果:jack  0

replace函数 将字符串中的字符替换为指定字符

例如:select replace (name,‘aa’,‘bb’) from test
解释:查询test表中的名字,并且将名字中含有aa字符串的全部改为bb

instr函数:找出字串在父串中的位置,0表示在父串中没有改字串 开始位置从1开始

例如:select instr('Hello World','World')from dual;
结果:7

trim函数:截断字符串

截断连续的前置a
例如:select trim(leading 'a' from 'aaaaabbbbbbssdfsfs')from dual
结果;bbbbbbssdfsfs
截断连续的后置a
例如:select trim(trailing 'a' from 'assahaaaaa')from dual
结果:assah
截断连续的前置a和后置a(默认是这种方式)
例如:select trim(trailing 'a' from 'assahaaaaa')from dual
结果:ssah


lpad函数:左铺垫

格式:lpad(需要铺垫的字符串,最终返回的字符串长度,用于填充的字符)如果最终要返回的长度小于字符串本身长度 那就从左到右截取该字符串 最终长度为第二个参数用于填充的字符可以为空
例如:select lapd('liujd',10,'6') from dual
结果:66666liujd
例如:select lpad ('liujd',3,'6') from dual
结果:liu

rpad函数:右铺垫
用法和lpad一样

例如:select rapd('liujd',10,'6') from dual
结果:liujd66666
例如:select rpad ('liujd',3,'6') from dual
结果:liu

数字函数:Oracle对数字类型数据的处理函数

abs(n) :返回n的绝对值

例如:select abs(-1),abs(1) from dual;
结果:1 1


ceil(n)返回大于等于n的最小整数

例如:select ceil(10),ceil(10.5),ceil(-10.5) from dual;
结果:10  11  -10

floor(n) 返回小于等于n的最大整数

例如:select floor(10),floor(10.5),floor(-10.5) from dual;
结果:10  10 -11

round:四舍五入

例如:select round(35.36,1) from dual
结果:35.4

第二个参数表示小数取几位,就是四舍五入到哪一位

例如:select round(35.36,0) from dual
结果是:35
例如:select round(35.36,-1) from dual
结果是:40


trunc:截取

格式:trunc(number,decimals)
number是待处理的数值
decimals表示需要保留小数点后面的位数
例如:select trunc(35.36,1)from dual;
结果:35.3

mod:取余数

例如: select mod(10,3) from dual;
结果:1

日期函数:Oracle中对日期格式的数据的处理


months_between:计算两个日期之间的差距

例如:select months_between('01-MAR-99','01-JAN-99') from dual;
结果:2

注意:此时应该将当前的数据库会话改为英文环境

语法:
alter session set nls_date_language=english;


add_months:当前月份进行加运算

例如:select add_months('01_MAR-99',12) from dual;
结果:01-MAR-00

next_day:从当前时间计算,下一个指定的星期是具体的哪一天

例如:select next_day(sysdate,'FRIDAY') from dual;
假设我现在是7月20号 下一个周五应该是明天 所以结果是7月21号


last_day:当前日期所在月份的最后一天是哪一个具体的日期

例如:select last_day(sysdate) from dual;
我当前是7月20号,本月最后一天是7月31号

to_date(dateString,dateFormat)
dateString表示字符串类型的日期
dateFormat表示要转成的指定格式

例如:select to_date(‘2017-07-20 12.12.12’,'yyyy-mm-dd hh24:mi:ss') from dual
结果:2017-07-20 12.12.12

round(number[,decimals]) 返回四舍五入后的值 
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分,并四舍五入。如果为负数则表示从小数点开始左边的位数,相应整数数字用0填充,小数被去掉。decimals 如果是小数都只取整数部分

例如:select round(5555.6666,2.1),round(5555.6666,-2.6),round(5555.6666) from dual;
结果: 5555.67 , 5600 , 5556 

trunc(number[,decimals]) 返回number按精度decimals截取后的值 
number 待做截取处理的数值
decimals 指明需要保留小数点后的位数,可选项 默认为0 为负数时表示从右往左截取 为整数时反之

例如:select trunc(5555.66666,2.1),trunc(5555.66666,-2.6),trunc(5555.033333) from dual;
结果:5555.66 5500 5555


round函数和trunc函数的区别
round(x[,y]) 返回截取后的值,用法同trunc(x[,y]),只是要做四舍五入
trunc(x[,y]) 返回截取后的值,用法同round(x[,y]),只是不四舍五入

转换函数 :Oracle中用于字符串和日期 数字之间的转换
to_char:用来将一个日期转换成字符串
例如:select to_char(sysdate,'YYYY-MM-DD')  from dual;
结果:2016-01-11
例如:select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS AM')  from dual;
结果:2016-01-11 10:31:56 AM

to_number:用来将一个数字字符串转换成数字。

例如:select to_number('2016') from dual;
结果: 2016

to_date:用来将一个字符串装换成日期。

例如:select to_date('17-02-1991','dd-mm-yy')   from dual;
结果:17-FEB-91

Oracle中的 sysdate表示系统当前时间
查看当前系统时间

select sysdate from dual

可以用sysdate的加减运算来获取日期 sysdate加减获取的是天数
Oracle中的默认时间格式是 '01-FEB-01"

(本文只列举了部分常用的函数。。。。。。)

Oracle函数之单值函数相关推荐

  1. (二)Oracle单行函数(单值函数)+多表查询

    学习内容 单行函数(单值函数) 字符函数 数字函数 日期函数 类型转换函数 字符函数 函数 作用 LOWER 转换为小写 UPPER 转换为大写 INITCAP 首字母大写 CONCAT 连接值 SU ...

  2. Oracle中的单值函数

    2019独角兽企业重金招聘Python工程师标准>>> Oracle的函数               Oracle函数可以分为单值函数和分组函数两大类,单值函数又分为字符函数.日期 ...

  3. mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)

    我需要使用注解在MyBatis中调用Oracle函数.使用MyBatis调用oracle函数(基于注释) 我的映射: @Select("{ CALL #{outParam, jdbcType ...

  4. oracle增量 mysql_是否有任何mysql / Oracle函数给予增量号。基于另一列相似值的一列?...

    我有兴趣知道是否有任何MySQL / Oracle函数给增量号.在另一列相似的值的基础上的一列? 就像在我的下面的代码中,我有order_primary列,其中包含订单号.所以基于此我们可以确定有多少 ...

  5. 使用oracle 游标修改数据,Oracle 函数施行修改和游标传递

    Oracle 函数执行修改和游标传递 ORA-14551:不能在查询语句中执行dml语句,开始误以为函数里不能执行DML或DDL语句,后查到前辈通过采用自治事务解决,在此基础上演例 传递SQL语句对数 ...

  6. oracle 函数索引

    http://bbs.51cto.com/thread-26271-1.html 如何创建oracle函数索引 Oracle8i的很重要的一个新特性就是增加了function-based index这 ...

  7. oracle+查询主机地址,oracle函数:获取Internet主机名和ip地址

    您可能感兴趣的话题: Oracle 核心提示:oracle函数获取Internet主机名和ip地址 Oracle包utl_inaddr 作用:用于取得局域网或Internet环境中的主机名和IP地址. ...

  8. row number函数 oracle,oracle函数 ROW_NUMBER()

    [语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...

  9. [转载]oracle函数listagg的使用说明

    工作中经常遇到很多需求是这样的,根据条件汇总某些字段,比如我遇到的是,我们公司有三个投资平台,同一个客户拿手机号在三个平台都注册了,但注册过的用户名不一样,显示的时候需要根据手机号显示所有注册过的名称 ...

最新文章

  1. restful接口定义的几种方式
  2. 白话JAVA守护线程
  3. 使用非侵入性脑机接口和计算机视觉引导对机器人手臂进行共享控制
  4. c语言程序设计 江宝钏 实验九,c语言程序设计,江宝钏著,实验九.docx
  5. boost::geometry模块自定义Triangle的测试程序
  6. java怎么表示正无穷大_有什么比无穷大更大,比无穷小更小?
  7. uniapp 子组件 props拿不到数据_来吧!一文彻底搞定Vue组件!
  8. 学习Spring Data JPA
  9. 新版本idea的run/debug configuration
  10. python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...
  11. idea svn回退版本_mac下使用svn通过终端回退版本到某个版本号 - 博客频道 - CSDN.NET...
  12. c语言调用树莓派usb摄像头,树莓派接多个USB摄像头,使用opencv打开指定的某一个摄像头...
  13. linux打开文件脚本,linux脚本文件实现的功能有哪些剧本用工具打开
  14. css 如何选择同一个class下的第一个div?
  15. php下载pdf并保存图片大小,php根据URL下载图片、压缩包、pdf等远程文件到本地
  16. C语言如何读取一行数据,直到按空格结束
  17. 毫米波雷达天线耦合(背景环境)的影响与消除
  18. git客户端安装(windows)
  19. P2615 神奇的幻方---Java
  20. linux 设备驱动 ppt,LINUX设备驱动开发3.ppt

热门文章

  1. 如何成为一名合格的运筹优化算法工程师?
  2. Flutter ListView (动态)列表组件、水平列表组件、图标组件详解
  3. 人脸识别(cv2库的实现)
  4. Flutter 圆形(头像)图片的 4种实现
  5. ResNet深度残差网络
  6. 性能诊断定位之CPU问题排查(一):win10环境1
  7. 基于RFID技术的智能门禁系统设计(控制部分)
  8. 人体信号基线漂移问题
  9. 百度员工抱怨:1月离职,没有年终奖。。。
  10. 南京邮电大学操作系统实验五:Windows平台多进程共享内存通信