oracle sql常用的函数,Oracle PL/SQL 常用函数总结

--created by : wanglin

--created date : 2012-08-20

--created purpose : Oracle PL/SQL 常用函数总结

--(1)处理字符的函数

--|| CONCAT 并置运算符

--格式:CONCAT(STRING1, STRING2)

SELECT CONCAT('wang','lin') FROM dual;

SELECT 'wang'||'lin' FROM dual;

--ASCII 返回字符的ascii码

SELECT ASCII('A') FROM dual;

--CHR 返回指定ascii码的字符

SELECT CHR(65) FROM dual;

--INSTR 搜索字串的位置

--格式:INSTR(STRING , SET[ , 开始位置[ , 出现次数]])

SELECT INSTR('wanglin','n',1,2) FROM dual;

--INITCAP 将字符串每个单词的首字母大写

SELECT INITCAP('wang lin') FROM dual;

--LENGTH 计算字符串的长度

SELECT LENGTH('wanglin') FROM dual;

--LPAD RPAD 左填充 右填充 默认空格填充

--格式: RPAD(字符串 , 字符个数 , 填充字符)

SELECT LPAD('wanglin',10,'i') , RPAD('wanglin',10,'i') FROM dual;

--LTRIM RTRIM 左右截断 默认删除空格

--格式∶ LTRIM(STRING[,’SET’])

SELECT LTRIM('***wang*lin***','*') , RTRIM('***wang*lin***','*') FROM dual;

--LOWER 将字符串转换为小写

SELECT LOWER('WANGLIN') FROM dual;

--UPPER 将字符串转换为小写

SELECT UPPER('wanglin') FROM dual;

--SUBSTR 提取子串 第二个参数为正的时候从左开始提取 为负时从右开始提取

--格式∶ SUBSTR(STRING , START [ , COUNT])

SELECT SUBSTR('wanglin',5,3) FROM dual;

--REPLACE 搜索指定字符串并替换

--格式∶REPLACE(string , substring , replace_string)

SELECT REPLACE('wanglin','n','m') FROM dual;

--TRIM 删除字符串前缀或者后缀字符串

--格式:TRIM([LEADING | BOTH | TRAILING] [ trimchar FROM] ' wang ')

SELECT TRIM(BOTH '*' FROM '* wang ') FROM dual;

SELECT TRIM('* wang ') FROM dual;

--(2)处理数字的函数

--LEAST 返回参数列表中的最小值 返回参数类型以第一参数为准

SELECT LEAST(1,2,3,4,5,6,7,-8) FROM dual;

--SIGN 返回参数的符号位 1:正数 0:0 -1:负数

SELECT SIGN(-10) FROM dual;

--CEIL 返回大于等于特定值的最小整数

--格式∶CEIL(value)

SELECT CEIL(9.7) FROM dual;

--(3)处理日期的函数

--SYSDATE---系统时间。精确至秒

SELECT SYSDATE FROM dual;

--ADD_MONTHS—加减月份。numvalue为负数时减去相应月份

--格式: ADD_MONTHS (data1,numvalue)

SELECT add_months(SYSDATE,1) FROM dual;

--MONTHS_BETWEEN---返回两日期之间的月数,当data1

--格式: MONTHS_BETWEEN(data1,data2)

SELECT months_between(SYSDATE , to_date('2000-08-20','yyyy-mm-dd')) FROM dual;

--LAST_DAY---返回指定日期的最后一天。

--格式∶LAST_DAY(date)

--TRUNC---将日期按照format格式截短,缺省为DD(不是四舍五入)

--格式:TRUNC(date, format)

SELECT TRUNC(to_date('2012-11-07','yyyy-mm-dd'),'MM') FROM dual;

--4)分组函数

--返回基于多个行的单一结果.常用函数:

AVG --求平均值

COUNT --返回查询的行数

MAX --返回查询列的最大值

MIN --返回查询列的最小值

SUM --返回查询列的总和

--MAX, MIN 常与 GROUP BY 配套使用

SELECT MAX(a.empno) FROM emp a;

--5)转换函数

--TO_DATE 转换字符串为日期型

--格式∶ TO_DATE(STRING[,’FORMAT’])

SELECT to_date('2012', 'yyyy') FROM dual;

--TO_CHAR 转换日期型或数值型为字符串。最重要的函数之一.其FORMAT格式多种多样

--格式∶TO_CHAR(DATE [,’FORMAT’])

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

--TO_NUMBER 转换字符串为数字

--格式∶TO_NUMBER(string [ , format])

SELECT to_number('9') FROM dual;

--6)其他

--DECODE IF语句的另一形式。将输入数值与参数列表比较,返回对应值。应用于将表的行转换成列以及IF语句无法应用的场合。当与SIGN联合使用时功能扩展,可以判断大于小于的情况.

--格式: DECODE(input_value , value1 , result1 , value2 , result2 , ….defult_result)

SELECT DECODE(a.empno,1,100,2,300,500) FROM emp a;

--当VALUE=1时返回100 当VALUE=2时返回300 否则返回500

DECODE(SIGN(VALUES-100), -1,-10,1,10,0)

--当VALUE<100时返回-10

--当VALUE>100时返回10

--当VALUE=100时返回0

SELECT SUM(DECODE(EST_INT_KEY,77771,1,0)) A,

SUM(DECODE(EST_INT_KEY,77772,1,0)) B,

SUM(DECODE(EST_INT_KEY,77773,1,0)) C

FROM PMS_BLK

--NVL 空值置换

--格式: NVL(value,替换值)

NVL(value,’nullvalue’)

--当value为NULL值时返回nullvalue否则返回value的值

--VSIZE 以字节为单位返回数据类型尺寸

--格式∶VSIZE(数据类型)

SELECT VSIZE(SYSDATE) FROM dual;

--7

--USER 得到当前用户名

--ROWNUM oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数。不能以任何基表的名称作为前缀。可以用在限制返回记录条数的地方不受ORDER BY的影响.

SELECT ROWNUM, MONTH, sell FROM sale WHERE ROWNUM = 1

--或

SELECT ROWNUM, MONTH, sell FROM sale WHERE ROWNUM < 2--(返回第一条记录)

--返回rownum在4—10之间的记录

SELECT ROWNUM, MONTH, sell FROM sale WHERE ROWNUM < 10

MINUS

SELECT ROWNUM, MONTH, sell FROM sale WHERE ROWNUM < 5;

--以下均错误:

SELECT ROWNUM, MONTH, sell FROM sale WHERE ROWNUM = 2 --(1以上)

SELECT ROWNUM, MONTH, sell FROM sale WHERE ROWNUM > 2

--ROWID 数据行在物理磁盘上的物理地址,Oracle通过ROWID来定位数据的具体位置,这是存取表中数据的最快的方法

--RETURN 用于函数和过程中.遇见RETURN程序立刻中断,返回,不再执行剩余部分.

--SQLCODE 返回ORACLE错误号。

--SQLERRM 返回ORACLE错误信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值