ORACLE单行函数的详细说明及代码演示 | 您所在的位置:网站首页 › oracle中rtrim › ORACLE单行函数的详细说明及代码演示 |
ORACLE单行函数的详细说明及代码演示 SQL语言中,常用的是数据库软件ORACLE,而在ORACLE中,有一些常用的单行函数,即操作一行数据,返回一个结果。 一.字符函数字符函数是专门用来处理字符串数据的函数,比较常用的有以下有些 首先,我们先假设有一张员工表,名为EMP 1.转码函数ASCII(A) 返回字符X的ASCII码 SQL> SELECT ASCII('A'), ASCII(ENAME) FROM EMP; 2.拼接函数CONCAT(A,B) 用来拼接字符串A和B 注意:此函数工作中常用 SQL>SELECT CONCAT(EMPNO, ENAME) 拼接 FROM EMP;解释:EMP表中的EMPNO, ENAME字段无空格拼接在一起 3.计算长度函数LENGTH(A) 返回A的长度 SQL>SELECT ENAME, LENGTH(ENAME) FROM EMP;解释: LENGTH()用来计算EMP表中ENAME字段的长度 4.大小写转换函数LOWER(A) 将A转换成小写 UPPER(a) 将a转换成大写 SQL>SELECT UPPER(ENAME) , LOWER(ENAME) FROM EMP;解释:EMP表中ENAME字段分别被转换成大写和小写 5.首字母大写函数INITCAP(A) 将A字段的首字母大写显示出来 SQL>SELECT INITCAP(ENAME) FROM EMP;解释:EMP表中ENAME字段的首字母被转换成小写 6.替换函数REPLACE(A,a,b) 说明:在A字段中查找小a,并将a替换成b SQL>SELECT ENAME, REPLACE(ENAME, 'A', '00') 替换 FROM EMP;解释:EMP表中ENAME字段包含A的都被替换成00 7.逐个替换函数TRANSLATE(A,aa,bb) 说明:在A字段中查找小aa,并将aa替换成bb SQL>SELECT ENAME, TRANSLATE(ENAME, 'ABCD', '1234') FROM EMP;解释:EMP表中ENAME字段包含ABCD的被逐个替换成1234; 8.去空字符函数TRIM(’ X ') 说明:把X的两边空格去掉 SQL>SELECT TRIM(' hnnbb ') FROM dual; 结果:hnnbbLTRIM(X[,TRIM_STR]) 说明:把X的左边截去trim_str字符串,缺省截去空格 SELECT lTRIM(’ hnnbb ') FROM dual; SQL>SELECT LTRIM(' hnnbb ') FROM dual; 结果:hnnbb解释:hnnbb左边的空格被去除掉了,但右边的空格还存在。 RTRIM(X[,TRIM_STR]) FROM dual; 说明:把X的右边截去trim_str字符串,缺省截去空格 SELECT RTRIM(’ hnnbb ') FROM dual; SQL>SELECT RTRIM(' hnnbb ') FROM dual; 结果:hnnbb解释:hnnbb右边的空格被去除掉了,但左边的空格还存在。 9.截取函数SUBSTR(X,start,[length]) 说明:返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾 SQL>SELECT ENAME, SUBSTR(ENAME, 0, 2) FROM EMP;解释:第一个EMP表中ENAME字段的数据,第二个是起始位置,第三个是截取几个字符; 注意:oracle起始位置0和1 是一样的 SQL>SELECT ENAME, SUBSTR(ENAME, 3) FROM EMP ;解释:截取EMP表中ENAME字段数据第3个位置之后所有字符 10.查找函数INSTR(X,Y,1) 说明:从X中查找Y,从第一个位置开始查找 SQL>SELECT ENAME, INSTR(ENAME, 'T', 1) from EMP;解释:EMP表中ENAME字段,从第个位置开始查找T。 INSTR(X,Y,1,n) 说明:从X中查找Y,从第一个位置开始查找,n表示第几次出现 SQL>SELECT ENAME, INSTR(ENAME, 'A', 1, 2) FROM EMP;小练习 计算 ‘#121#3#4#56#78#90#’ 第三个#号 到第六个#之间的数据? 思路: 1.计算第三位置+1 2.计算第六位置 3.第六-第三=截取的长度-1 SQL>SELECT SUBSTR('#121#3#4#56#78#90#', INSTR('#121#3#4#56#78#90#', '#', 1, 3) + 1, INSTR('#121#3#4#56#78#90#', '#', 1, 6) - INSTR('#121#3#4#56#78#90#', '#', 1, 3) - 1) FROM DUAL; 结果:4#56#78 二.数值函数数值函数有可以单独的用来计算一些数值,接受数字参数,也可以用以表中某些字段列的计算,还可以是一个数字表达式。 MOD(X,Y)X除以Y的余数POWER(X,Y)X的Y次幂ROUND(X,Y)X在第Y位四舍五入ABS(X)X的绝对值SQRT(X)X的平方根POWER(X,Y)X的Y次幂TRUNC(X,Y)取整FLOOR(X)小于或等于X的最大值CEIL(X)小于或等于X的最小值 三. 转换函数 1.TO_NUMBER(A)说明:将一串字符型数字转换成数字型 SQL>SELECT TO_NUMBER('1231') + 100 FROM DUAL; 结果:1131若在ORACLE中直接用以下代码 SQL>SELECT '1231' + 100 FROM DUAL;结果依旧是1131,因为ORACLE自动替你转换了。但是我们应该避免使用这样的方法计算,因为会导致索引失效;(索引我们理解为目录,加快查询速度) 2.TO_CHAR(a,[fmt])把日期和数字转换为制定格式的字符串。其中,Fmt是格式化字符串 以下为代码演示,后面的中文为转换的格式注解 SQL>SELECT TO_CHAR(SYSDATE, 'yyyy') 年, TO_CHAR(SYSDATE, 'mm') 月, TO_CHAR(SYSDATE, 'dd') 天, TO_CHAR(SYSDATE, 'day') 星期几, TO_CHAR(SYSDATE, 'q') 季度, TO_CHAR(SYSDATE, 'w') 当月第几周, TO_CHAR(SYSDATE, 'ddd') 当年第几天, TO_CHAR(SYSDATE, 'ww') 这一年的第几周, TO_CHAR(SYSDATE, 'hh24') 时, TO_CHAR(SYSDATE, 'mi') 分, TO_CHAR(SYSDATE, 'ss') 秒, TO_CHAR(SYSDATE, 'd') 本周第几天 FROM DUAL;以上代码一般用于从日期里面提取详细数据使用,工作中非常常用! 3.TO_DATE(X,[fmt])ci此函数用于将一个字符串以fmt格式转换成一个日期类型 提取日期小知识不区分上下半年,提取某月,某月中的某天,某周 代码演示: SQL>SELECT TRUNC(SYSDATE,'yyyy')年,TRUNC(SYSDATE,'mm')月,TRUNC(SYSDATE,'dd')天,TRUNC(SYSDATE,'day')周 FROM dual;区分上下半年,提取某月,某月中的某天,某周 代码演示: SQL>SELECT round(SYSDATE,'yyyy')年,round(SYSDATE,'mm')月,round(SYSDATE,'dd')天,round(SYSDATE,'day')周 FROM dual; 总结这些单行的函数在是SQL语言中是非常基础的,但是我们要非常熟悉他们的应用。读者可自行在ORACLE中演示以上代码。 |
CopyRight 2018-2019 实验室设备网 版权所有 |