热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

十七、Oracle内置函数

Oracle内置函数1、数值函数绝对值函数:SELECTABS(-100),ABS(-100),ABS(-100)FROMdual取余函数:SELE

                                             Oracle内置函数


1、数值函数

绝对值函数:SELECT ABS(-100),ABS(-100),ABS('-100') FROM dual取余函数:SELECT MOD(-100,6),MOD(-100,10),MOD('-100',3) FROM dual正弦函数:SELECT SIN(9),SIN('9') FROM dual天花板函数:SELECT CEIL(10),CEIL(10.2),CEIL(-10.2) FROM dual地板函数:SELECT FLOOR(10),FLOOR(10.2),FLOOR(-10.2) FROM dual平方根函数:SELECT SQRT(10),SQRT(3) FROM DUAL指数函数:SELECT POWER(2,2),POWER(3,3) FROM dual对数函数:SELECT LOG(10,100),LOG(10,2) FROM dual取整函数:SELECT ROUND(100.2435,4),ROUND(100.2345,-2),ROUND(100.2345,2.25) FROM dual

2、字符函数

ASCII码转字符函数:SELECT CHR(65) FROM dual字符转ASCII码函数:SELECT ASCII('杨'),ASCII('A') FROM dual字符串长度函数:SELECT LENGTH('字符串长度') FROM dual截取字符串函数:SELECT SUBSTR('截取字符串长度',1,5) FROM dual连接字符串函数:SELECT CONCAT('连接','字符串'),'连接'||'字符串' FROM dual 搜索函数:SELECT INSTR('查看字符串在目标字符串中的位置','目标') FROM dual倒搜索函数:SELECT INSTR('查看字符串在目标字符串中的位置','目标',-1) FROM dual替换函数:SELECT REPLACE('这是要被替换的,这还是。','是','77')FROM dual右连接字符函数:SELECT RPAD('连接字符',16,'连到右边,共八位长度') FROM dual左连接字符函数:SELECT LPAD('连接字符',16,'连到右边,共八位长度') FROM dual左右去空格:SELECT TRIM(' TEST ') FROM dual去除指定后缀:SELECT TRIM(TRAILING 'T' FROM 'TEST') FROM dual去除指定前缀:SELECT TRIM(LEADING 'T' FROM 'TEST') FROM dual去除指定前后缀:SELECT TRIM(BOTH 'T' FROM 'TEST') FROM dual

3、日期函数

--系统日期:
SELECT sysdate FROM DUAL--系统timestamp:
SELECT systimestamp FROM DUAL--数据库时区:
SELECT dbtimezone FROM DUAL--当前时间:
SELECT CURRENT_DATE FROM DUAL--SESSIONTIMEZONE函数(当前会话时区):
SELECT SESSIONTIMEZONE FROM DUAL--to_char函数:
SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM DUAL--ADD_MONTHS函数(为日期加上月):
SELECT to_char(ADD_MONTHS(TO_DATE('2018-10-12','YYYY-MM-DD'),2),'yyyy-mm-dd hh24:mi:ss') FROM DUAL--LAST_DAY函数:
SELECT LAST_DAY(SYSDATE) FROM DUAL--NEXT_DAY函数(返回指定日期下周的星期几):
SELECT SYSDATE,NEXT_DAY(SYSDATE,'星期二') from dual--EXTRACT函数:
select extract(year from systimestamp) year ,extract(month from systimestamp) month ,extract(day from systimestamp) day ,extract(minute from systimestamp) minute ,extract(second from systimestamp) second ,extract(timezone_hour from systimestamp) th ,extract(timezone_minute from systimestamp) tm ,extract(timezone_region from systimestamp) tr ,extract(timezone_abbr from systimestamp) ta
from dual --months_between函数计算两个日期之间的相差的月数:
select months_between(to_date('2014-3-21','yyyy-mm-dd'), to_date('2014-1-10','yyyy-mm-dd')) ONE,months_between(to_date('2014-1-10','yyyy-mm-dd'), to_date('2014-3-21','yyyy-mm-dd')) TWO,months_between(to_date('2014-1-10','yyyy-mm-dd'), to_date('2014-1-10','yyyy-mm-dd')) THREE from dual;--new_time函数:
select to_char(sysdate, 'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time(sysdate, 'PDT', 'GMT'), 'yyyy.mm.dd hh24:mi:ss') los_anglesfrom dual;--Trunc函数:四舍五入
SELECT TRUNC(SYSDATE), -- 今天的日期为 2014-05-08TRUNC(SYSDATE, 'YYYY'), --返回当年第一天 2014-01-01 yyyy/yy/year 年TRUNC(SYSDATE, 'MM'), --返回当月第一天 2014-05-01 mm/month 月TRUNC(SYSDATE, 'DD'), --返回当前年月日 2014-05-08 d/day 周TRUNC(SYSDATE, 'D'), --(星期天)返回当前星期的第一天 2014-05-04TRUNC(SYSDATE, 'HH'), --返回当前时间精确小时 2014-05-08 11:00:00TRUNC(SYSDATE, 'MI') -- 返回当前时间精确分钟 2014-05-08 11:06:00 TRUNC()函数没有秒的精确 FROM DUAL;--Round函数:只是
select Round(sysdate, 'Q') Rnd_Q, --2014-04-01Round(sysdate, 'Month') Rnd_Month, --2014-05-01Round(sysdate, 'WW') Rnd_Week, --2014-05-07Round(sysdate, 'W') Rnd_Week_again, --2014-05-08Round(sysdate, 'DDD') Rnd_day, --2014-05-08Round(sysdate, 'DD') Rnd_day_again, --2014-05-08Round(sysdate, 'DAY') Rnd_day_of_week, --2014-05-11Round(sysdate, 'D') Rnd_day_of_week_again, --2014-05-11Round(sysdate, 'HH12') Rnd_hour_12, --2014-05-08 12:00:00Round(sysdate, 'HH24') Rnd_hour_24, --2014-05-08 12:00:00Round(sysdate, 'MI') Rnd_minute --2014-05-08 11:52:00from dual;

3、字符函数

--字符串转ASCII类型字符串函数
SELECT ASCIISTR('测试字符串转ASCII编码') from dual--二进制转十进制函数
SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,1),BIN_TO_NUM(1,1,1) FROM DUAL --数据类型转换函数
SELECT CAST('123.4567' AS NUMBER(10,2)),CAST(123.4567 AS VARCHAR2(8)),CAST(SYSDATE AS VARCHAR2(14)) FROM DUAL;--CHARTOROWID
SELECT CHARTOROWID('AAAToYAAEAAAALzAAC') FROM DUAL--ROWIDTOCHAR,返回vchar类型
SELECT ROWIDTOCHAR(ROWID) FROM SYS_DECLARE--返回vchar2类型
SELECT ROWIDTONCHAR(ROWID) FROM SYS_DECLARE--字符串在字符集间的转换函数,US7ASCII目标字符类型,WE8ISO8859P1原字符
SELECT CONVERT('测试字符串=====','US7ASCII', 'WE8ISO8859P1') FROM DUAL--to_date函数
select to_date('20170615','yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_date('20170615','yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份--to_number函数
select to_number('000012134') from dual;
select to_number('88877') from dual; --TO_CHAR函数
select TO_CHAR(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual
select TO_CHAR(123,'$99,999.9') from dual;

4、NULL函数

--返回表达式列表中,结果不为null的表达式
SELECT COALESCE(NULL,9-1,NULL) FROM DUAL--LNNVL函数:排除指定条件的数据(null也排除)
select * from EMP t where LNNVL(t.deptno>10)--NVL函数值替换:如果comm为null用-1替代
select ename,NVL(comm, -1) from emp;--NVL2函数:第一个comm为空用-1,不为空用第二个commonselect ename,nvl2(comm,comm,-1) from emp;

5、集合函数

--AVG函数:计算指定列值的平均数--COUNT函数:计算指定列的记录条数--MAX、MIN计算指定列中的最大或者最小值


推荐阅读
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 【Mysql】九、Mysql高级篇 索引
    MYSQL索引一、什么是索引?二、索引数据结构1、mysql数据库的四种索引2、BTREE结构三、索引分类、创建索引、查看索引1、单值索引2、复合索引3、函数索引4、 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • 本文介绍了关于Java异常的八大常见问题,包括异常管理的最佳做法、在try块中定义的变量不能用于catch或finally的原因以及为什么Double.parseDouble(null)和Integer.parseInt(null)会抛出不同的异常。同时指出这些问题是由于不同的开发人员开发所导致的,不值得过多思考。 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
  • 利用空间换时间减少时间复杂度以及以C语言字符串处理为例减少空间复杂度
    在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • Oracle 和 mysql的9点区别【MySQL】
    数据库|mysql教程oracle,Oracle,money,mysql,coun数据库-mysql教程1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在o ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 一、设置时区方法一:使用setup工具setup选择Timezoneconfiguration选择AsiaShanghai空格键勾选上System ... [详细]
author-avatar
U友60402250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有