--(1)处理字符的函数--|| CONCAT 并置运算符--格式:CONCAT(STRING1, STRING2)SELECT CONCAT('test','oracle') FROM dual;SELECT 'test'||'oracle' FROM dual;--ASCII 返回字符的ascii码SELECT ASCII('A') FROM dual;--CHR 返回指定ascii码的字符SELECT CHR(65) FROM dual;--INSTR 搜索字串的位置--格式:INSTR(STRING , SET[ , 开始位置[ , 出现次数]])SELECT INSTR('testoracle','t',1,2) FROM dual;--INITCAP 将字符串每个单词的首字母大写SELECT INITCAP('test oracle') FROM dual;--LENGTH 计算字符串的长度SELECT LENGTH('testoracle') FROM dual;--LPAD RPAD 左填充 右填充 默认空格填充--格式: RPAD(字符串 , 字符个数 , 填充字符)SELECT LPAD('testoracle',10,'i') , RPAD('testoracle',10,'i') FROM dual;--LTRIM RTRIM 左右截断 默认删除空格--格式∶ LTRIM(STRING[,’SET’])SELECT LTRIM('***test*oracle***','*') , RTRIM('***test*oracle***','*') FROM dual;--LOWER 将字符串转换为小写SELECT LOWER('TESTORACLE') FROM dual;--UPPER 将字符串转换为大写SELECT UPPER('testoracle') FROM dual;--SUBSTR 提取子串 第二个参数为正的时候从左开始提取 为负时从右开始提取--格式∶ SUBSTR(STRING , START [ , COUNT])SELECT SUBSTR('testoracle',5,3) FROM dual;--REPLACE 搜索指定字符串并替换--格式∶REPLACE(string , substring , replace_string)SELECT REPLACE('testoracle','t','m') FROM dual;--TRIM 删除字符串前缀或者后缀字符串--格式:TRIM([LEADING | BOTH | TRAIoracleG] [ trimchar FROM] ' test ')SELECT TRIM(BOTH '*' FROM '* test ') FROM dual;SELECT TRIM('* test ') 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 否则返回500DECODE(SIGN(VALUES-100), -1,-10,1,10,0)--当VALUE<100时返回-10--当VALUE>100时返回10--当VALUE=100时返回0SELECT 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错误信息。
详细解决方案
plsql 惯用函数
热度:102 发布时间:2016-05-05 11:29:16.0
相关解决方案
- plsql 里怎么判断密码长度大于等于6
- java-plsql 有关问题
- PlSql 如何查询一张表使得orderID相同就合并那几行数据的某一行数据
- PLSQL 撤销有关问题
- 如何用 PLSQL Developer 创建新的oracle数据库
- PLSQL 批量安插更新
- plsql 与 sqlplus 查询结果不一致,该怎么处理
- plsql oracle脚本,导出数据条目不一样?解决思路
- plsql 是不是有辦法將 Schema 的 Table 清單 拉出來成一個視窗
- PLSQL 新计算机装了 11g, 开启后找不到可以连接的资料库清单><
- 为啥监听没有启动,plsql dev客户端依然可以连接数据库呢
- 为何监听没有启动,plsql dev客户端依然可以连接数据库呢
- PLSQL 登录oracle数据库出现 “无法解析指定的连接标识符”异常
- plsql 客户端连接远程 oracle 服务查询卡住,该怎么处理
- plsql,该如何处理
- Win7 64 安装oracle11g plsql 配置完后查询数据中文显示乱码,该怎么处理
- 求大神 PLSQL 使用,该怎么处理
- plsql developer 到底如何显示dbms_output
- plsql 8.0怎么在windows server 2008下连64bit 的Oracle 11g client
- plsql 联接本地oracle连接不上 昨天还好使
- PLSQL 查询乱码有关问题
- plsql 没法弹出数据表对应的字段
- plsql deveploer软件奇怪有关问题
- PLSQL developer从ORACLE中导出的TSV资料中有空行
- plsql 无监听程序,该如何解决
- 有关oralce plsql 运行时间的疑问,请帮忙解惑解决方案
- plsql 中(+)怎么使用
- plsql 数据库操作有关问题求解
- plsql developer连接oracle出现ORA-12520异常
- plsql developer连接时提示ORA-12541: TNS:no listener解决思路