Oracle经常用到的一些函数
1、数字函数
:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。示例如下:
SQL> select NVL(NULL,1) from dual; NVL(NULL,1)
-----------
1 SQL> select NVL(12,1) from dual; NVL(12,1)
----------
12 SQL> select NVL('',1) from dual; -----单引号里没有空格 NVL('',1)
---------
1
E2, E3)
SQL> select nvl2(NULL,12,3) from dual; NVL2(NULL,12,3)
---------------
3 SQL> select nvl2(5,12,3) from dual; NVL2(5,12,3)
------------
12
SQL> select SIGN(-10),SIGN(0),SIGN(5) from dual; SIGN(-10) SIGN(0) SIGN(5)
---------- ---------- ----------
-1 0 1
CEIL(n) :该函数用于返回大于等于数字n的最小整数.
SQL> select ceil(15),ceil(15.1) from dual; CEIL(15) CEIL(15.1)
---------- ----------
15 16
FLOOR(n):该函数用于返回小于等于数字n的最大整数。
SQL> select floor(15),floor(15.1) from dual; FLOOR(15) FLOOR(15.1)
---------- -----------
15 15
MOD(m,n) :该函数用于返回两个数字相除后的余数.如果数字n为0,则返回结果为m。
SQL> select mod(10,3) from dual; MOD(10,3)
----------
1
SQL> select mod(10,0) from dual; MOD(10,0)
----------
10
ROUND(n,[m]) :该函数用于执行四舍五入运算;如果省略m,则四舍五入至整数位;如果m是负数,则四舍五入到小数点前m位;如果m是整数,则四舍五入至小数点后m位.示例如下:
SQL> select round(65.698) from dual; ROUND(65.698)
-------------
66 SQL> select round(65.698,1) from dual; ROUND(65.698,1)
---------------
65.7 SQL> select round(65.698,-1) from dual; ROUND(65.698,-1)
----------------
70
TRUNC(n,[m]) :该函数用于截取数字。如果省略数字m,则将数字n的小数部分截去;如果数字m是正数,则将数字n截取到小数点后的第m位;如果数字m是负数,则将数字n截取到小数点前m位.示例如下:
SQL> select trunc(65.698) from dual; TRUNC(65.698)
-------------
65 SQL> select trunc(65.698,2) from dual; TRUNC(65.698,2)
---------------
65.69 SQL> select trunc(65.698,1) from dual; TRUNC(65.698,1)
---------------
65.6 SQL> select trunc(65.698,-1) from dual; TRUNC(65.698,-1)
----------------
60 SQL> select trunc(65.698,-2) from dual; TRUNC(65.698,-2)
----------------
0
2、字符函数
字符函数的输入参数为字符类型,其返回值位字符类型或数字类型。字符函数既可以在SQL语句中使用,也可以在PL/SQL块中使用.
TRIM 函数的语法如下:
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
下面的这种情况是用于截取特定的字符串:
DECLARE
v_source VARCHAR2(20) :='ABCDGHJHAB';
v_trim VARCHAR2(20);
BEGIN
v_trim:=trim('A' FROM v_source);
dbms_output.put_line(v_trim);
END;
下面的情况是去除字符串的行首和行尾的空格 ,为了便于理解,用length函数打印trim截取字符串后的长度:
SQL> select length(trim(' hello ')) from dual; ----什么都不写,默认情况下截取两端的空格
LENGTH(TRIM('HELLO'))
---------------------
5
SQL> select length(trim(leading from ' hello')) from dual; ------leading 截取字符串前面空格
LENGTH(TRIM(LEADINGFROM'HELLO'
------------------------------
5
SQL> select length(trim(trailing from ' hello ')) from dual; ---trailing 截取字符串后面空格
LENGTH(TRIM(TRAILINGFROM'HELLO
------------------------------
6
SQL> select length(trim(both from ' hello ')) from dual; -----both 截取两端的空格
LENGTH(TRIM(BOTHFROM'HELLO'))
-----------------------------
5
ASCII(char):该函数用于返回字符串首字符的ASCII值,示例如下:
SQL> select ascii('a') "a" ,ascii('A') "A" from dual;
a A
---------- ----------
97 65
CHR(char) :该函数用于将ASCII码值转变为字符。示例如下:
SQL> select chr('97') from dual;
CHR('97')
---------
a
SQL> select chr('56') from dual;
CHR('56')
---------
8
CONCAT:该函数用于连接字符串,其作用于连接操作符(||)完全相同。示例如下:
SQL> select concat('Good','Morning') from dual;
CONCAT('GOOD','MORNING')
------------------------
GoodMorning
SQL> select 'Good'|| 'Morning' from dual;
'GOOD'||'MORNING'
-----------------
GoodMorning
LENGTH(char):该函数用于返回字符串的长度,如果字符串的类型为CHAR,则其长度包括所有的后缀空格:如果char是null,则返回null。示例如下:
SQL> select length('111') from dual;
LENGTH('111')
-------------
3
3、日期时间函数
日期时间函数用于处理DATE和TIMESTAMP类型的数据。 除了函数,MONTHS_BETWEEN返回数字值外,其它日志函数均返回DATE类型的数据.Oracle是以7位数字格式来存放日期数据的,包括世纪、年、月、日小时、分钟、秒,并且默认时间显示格式为"DD-MON-YY"。下面详细介绍Oracle所提供的日期时间函数,以及在SQL语句和PL/SQL块中使用这些函数的方法。
ADD_MONTHS(d,n):该函数用于返回特定日期时间 d 之后(或之前)的n个月所对应的日期时间(n为正整数表示之后,n为负整数表示之前).示例如下:
SQL> set serveroutput on;
SQL>
SQL> DECLARE
2 v_date DATE;
3 BEGIN
4 v_date:=add_months(sysdate,-12);
5 dbms_output.put_line('当前日期前14个月所对应的日期:'||v_date);
6 END;
7
8 / 当前日期前14个月所对应的日期:05-7月 -12 PL/SQL procedure successfully completed
TRUNC(d,[fmt]) :该函数用于截取日期时间数据.如果fmt指定年度,则结果为本年度的1月1日;如果fmt指定月,则结果为本月1日。示例如下:
----------月
SQL> select trunc(sysdate,'MONTH') from dual; TRUNC(SYSDATE,'MONTH')
----------------------
2013/7/1 SQL> select trunc(sysdate,'mm') from dual; TRUNC(SYSDATE,'MM')
-------------------
2013/7/1 ----------年
SQL> select trunc(sysdate,'YY') from dual; TRUNC(SYSDATE,'YY')
-------------------
2013/1/1 SQL> select trunc(sysdate,'YEAR') from dual; TRUNC(SYSDATE,'YEAR')
---------------------
2013/1/1
MOTNS_BETWEEN(d1,d2):该函数用于返回d1和d2之间相差的月数.如果d1小于d2,则返回负数;如果d1和d2的天数相同,或都是月底,则返回整数;否则Oracle以每月31天为准来计算结果的小数部分。示例如下:
SQL> select months_between(sysdate,'6-7月-1998') from dual; MONTHS_BETWEEN(SYSDATE,'6-7月-
------------------------------
180
NEXT_DAY(d,char):该函数用于返回指定日期后的第一个工作日(由char指定)所对应的日期。示例如下:
SQL> select next_day(sysdate,'星期日') from dual; NEXT_DAY(SYSDATE,'星期日')
--------------------------
2013/7/7 9:15:51 SQL> select next_day(sysdate,'星期一') from dual; NEXT_DAY(SYSDATE,'星期天')
--------------------------
2013/7/8 9:15:11
4、转换函数
转换函数用于将数值从一种数值类型转换为另一种数据类型。在某些情况下,Oracle Server会隐含地转换数据类型。但在编写应用程序时,为了防止出现编译错误,如果数据类型不同,那么应该使用转换函数进行类型转换.下面详细介绍Oracle所提供的转换函数,以及在SQL语句和PL/SQL块中使用这些转换函数的方法。
TO_CHAR(data[,fmt[,nls_param]]) :该函数用于将日期值转变为字符串,其中fmt用于指定日期格式,nls_param用于指定nls参数。示例如下:
SQL> select to_char(sysdate,'YYYY-MM-DD') from dual; TO_CHAR(SYSDATE,'YYYY-MM-DD')
-----------------------------
2013-07-06
TO_CHAR(n[,fmt[,nls_param]]):用于将数字值转换为VARCHAR2数据类型.示例如下:
SQL> select to_char(100) from dual; TO_CHAR(100)
------------
100
TO_DATE(char[,fmt[,nls_param]]):该函数用于将符合指定日期的函数转变为DATE类型的数值,示例如下:
SQL> select TO_DATE('01-01-2001','DD-MM-YYYY') from dual;
TO_DATE('01-01-2001','DD-MM-YY
------------------------------
2001/1/1
SQL> select TO_DATE('2001-01-01','YYYY-MM-DD') from dual;
TO_DATE('2001-01-01','YYYY-MM-
------------------------------
2001/1/1
附录:关于Decode函数
select sid,serial#,username,
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’) cmmand
from v$session where username is not null;
Oracle经常用到的一些函数的更多相关文章
- ORACLE中的支持正则表达式的函数
ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBS ...
- oracle的分析函数over 及开窗函数
转:http://www.2cto.com/database/201310/249722.html oracle的分析函数over 及开窗函数 一:分析函数over Oracle从8.1.6开 ...
- Oracle 中的 TO_DATE 和 TO_CHAR 函数
Oracle 中的 TO_DATE 和 TO_CHAR 函数oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年) ...
- 【转】Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年) ...
- .Net程序员学用Oracle系列(7):视图、函数、过程、包
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...
- Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程? 麦苗答:方法有多种,可以使用DBMS_MET ...
- oracle中类似indexof用法_instr函数
oracle中类似indexof用法_instr函数 [sql] 在oracle中没有indexof()函数 但是提供了一个 instr() 方法 具体用法: select instr('保定市南市区 ...
- mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()
1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
Oracle --> MySQL to_char(sysdat ...
随机推荐
- Ext JS 6开发实例(四) :调整主视图
上文把主界面设置好,但是主视图因为界面的微调出现了显示问题,本文将把它调整好了. 打开app/view/main/Main.js,可以看到主视图是派生于标签面板(Ext.tab.Panel)的.在视图 ...
- JEECG&Dubbo Demo
jeecg框架service与dao层类图 吴水成Dubbo Demo项目架构图
- (七十五)CoreLocation(一)在iOS7和iOS8设备上获取授权
苹果在iOS8上更新了CoreLocation的授权获取方式,在原来的基础上,不仅需要调用授权函数,还需要对info.plist进行相应的配置. 在iOS上获取经纬度使用的是CoreLocationM ...
- python类:描述器Descriptors和元类MetaClasses
http://blog.csdn.net/pipisorry/article/details/50444769 描述器(Descriptors) 描述器决定了对象属性是如何被访问的.描述器的作用是定制 ...
- 【一天一道LeetCode】#113. Path Sum II
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- 【一天一道LeetCode】#103. Binary Tree Zigzag Level Order Traversal
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 来源: htt ...
- UNIX环境高级编程——线程同步之互斥量
互斥量(也称为互斥锁)出自POSIX线程标准,可以用来同步同一进程中的各个线程.当然如果一个互斥量存放在多个进程共享的某个内存区中,那么还可以通过互斥量来进行进程间的同步. 互斥量,从字面上就可以知道 ...
- 《java入门第一季》之泛型引入
泛型的引入: 首先看一段代码体会自动报错. // 看下面这个代码 自动报错 String[] strArray = new String[3]; strArray[0] = "hello&q ...
- 04_Weblogic之受管服务器:配置受管服务器,启动受管服务器,解决因为强制关闭Weblogic之后导致启动有问题的问题,配置boot.properties
配置受管服务器, 先启动WebLogic服务器,启动方式如下: 在WebLogic控制台中的"开发模式"---"锁定并编辑"模式下,点击"Ser ...
- MacTalk·人生元编程 - 读书笔记
简介 <MacTalk·人生元编程>是一本随笔文集,主要内容来自作者的微信公众平台"MacTalk By 池建强".本书撰写于2013年,书中时间线却不止于此.作者以一 ...