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 ...
随机推荐
- 剑指offer面试题4 替换空格(c)
- 插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑
请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52258434 在了解系统的activity,service,broa ...
- FFmpeg源代码简单分析:avcodec_close()
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- 百度地图SDK3.4的使用
使用过百度地图的开发者应该都知道原始百度地图的开发的基本流程,但是随着百度地图的更新,百度地图的api有了翻天覆地的变化,最新版本的sdk为v3.4 2015年4月14日上线,优化了许多接口的设计,简 ...
- 【移动开发】Context类bindService()参数
bindService()是Context的一个方法,它是抽象的.函数原型的代码如下:(android 2.3.3) /** * Connect to an application service, ...
- XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=505 因为常用cocos2dx开 ...
- 04 AutoCompleteTextView
作用:输入部分文字跳处下拉框列出相应的条目 <pre name="code" class="html"> <!-- 当文本框出现两个字符才开始 ...
- printk的用法
printk的用法 内核通过 printk() 输出的信息具有日志级别,日志级别是通过在 printk() 输出的字符串前加一个带尖括号的整数来控制的,如 printk("<6> ...
- 数据库隔离级别(mysql+Spring)与性能分析
数据库隔离级别与Spring配置事务的联系及性能影响,以下是个人理解,如果有瑕疵请及时指正. 这里以mysql为例,先明确以下几个问题: 一.一般项目如果不自己配置事务的话,一般默认的是au ...
- Fedora 20: How to enable SSH
1. systemctl enable sshd.service 2. service sshd restart