oracle sql 常用单行函数
2017-06-05 14:48
477 查看
上一篇对oracle sql常用聚合函数进行了描述,这篇将对常用的单行函数进行描述。
单行函数和聚合函数的区别是:单行函数每次只能对表中的一行记录进行作用。可以分为以下几类:
1)字符函数
2)数值函数
3)日期函数
4)转换函数
1)常用字符函数有:initcap、upper、lower、concat、instr、length、trim、replace、substr等。
lower(x)函数主要将参数x中的所有字符小写。
upper(x)函数主要将参数x中的所有字符大写。
initcap(x)函数主要将参数x中的所有单词的首字母大写。
concat(x,y)函数用于连接字符串x和y。
instr(x,y,p1,p2)函数用于查询从指定的位置p1开始,字符串y在字符串x中第p2次出现时的位置。默认p1=1,p2=1.
trim(both|leading|trailing ch from string2) 函数用于将string2中的两端|前端|后端字符ch(不能是字符串)去除。
substr(string,p1,p2)函数用于从字符串string的p1处截取长度为p2的子串。p1>=0都表示从字符串左端p1处开始往右截取(0和1都表示从第一位开始),p1<0则从右端第p1处开始往右截取。
2)常用的数值函数有:abs,acos,cos,ceil,round,floor,log,mod,power,sqrt,trunc。比较简单不详细介绍,结果如下。
3)常用的日期函数有:add_months,last_day,months_between,extract。
add_months(x,y) 用于在某个时间x上加上额外的月份数y。
months_between(x,y)用于计算两个日期间的月份差值数
fmt 为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可以为 DATE 类型匹配,也可以与 TIMESTAMP 类型匹配;但是 HOUR、MINUTE、SECOND 必须与 TIMESTAMP 类型匹配。
HOUR 匹配的结果中没有加上时区,因此在中国运行的结果小 8 小时。
4)转换函数
转换函数将值从一种数据类型转换为另外一种数据类型。常见的转换函数有:
1、TO_CHAR(d|n[,fmt]):把日期和数字转换为制定格式的字符串。Fmt是格式化字符串
TO_DATE(X,[,fmt])把一个字符串以fmt格式转换成一个日期类型
TO_NUMBER(X,[,fmt])把一个字符串以fmt格式转换成一个数字类型
5)通用函数
NVL(X,VALUE)如果X为空,返回value,否则返回X
NVL2(x,value1,value2) 如果x非空,返回value1,否则返回value2
单行函数和聚合函数的区别是:单行函数每次只能对表中的一行记录进行作用。可以分为以下几类:
1)字符函数
2)数值函数
3)日期函数
4)转换函数
1)常用字符函数有:initcap、upper、lower、concat、instr、length、trim、replace、substr等。
lower(x)函数主要将参数x中的所有字符小写。
SQL> select * from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> --将dept表中DNAME列小写 SQL> select lower(dname) from dept; LOWER(DNAME) -------------- accounting research sales operations
upper(x)函数主要将参数x中的所有字符大写。
SQL> --将字符串'hello world'大写 SQL> select upper('hello world') from dual; UPPER('HELL ----------- HELLO WORLD
initcap(x)函数主要将参数x中的所有单词的首字母大写。
SQL> --将字符串'hello world'中每个单词的首字母大写 SQL> select initcap('hello world') from dual; INITCAP('HE ----------- Hello World
concat(x,y)函数用于连接字符串x和y。
SQL> --将字符串'hello'与'world'相连(无空格)
SQL> select concat('hello','world') from dual; CONCAT('HE ---------- helloworld
instr(x,y,p1,p2)函数用于查询从指定的位置p1开始,字符串y在字符串x中第p2次出现时的位置。默认p1=1,p2=1.
SQL> select instr('hello world','l',4,2) from dual; INSTR('HELLOWORLD','L',4,2) --------------------------- 10length(x)函数统计字符串x的长度(包含空格)。
SQL> select length('hello world') from dual; LENGTH('HELLOWORLD') -------------------- 11
trim(both|leading|trailing ch from string2) 函数用于将string2中的两端|前端|后端字符ch(不能是字符串)去除。
SQL> select trim(both '1' from '123321') from dual; TRIM ---- 2332 SQL> select trim(leading '1' from '123321') from dual; TRIM( ----- 23321 SQL> select trim(trailing '1' from '123321') from dual; TRIM( ----- 12332replace(string,str_old,str_new)函数用于将字符串string中的子串str_old替换成str_new。
SQL> select replace('hello world','l','why') from dual; REPLACE('HELLOWOR ----------------- hewhywhyo worwhyd
substr(string,p1,p2)函数用于从字符串string的p1处截取长度为p2的子串。p1>=0都表示从字符串左端p1处开始往右截取(0和1都表示从第一位开始),p1<0则从右端第p1处开始往右截取。
SQL> select substr('hello world',0,2) from dual; SU -- he SQL> select substr('hello world',-3,2) from dual; SU -- rl
2)常用的数值函数有:abs,acos,cos,ceil,round,floor,log,mod,power,sqrt,trunc。比较简单不详细介绍,结果如下。
SQL> --计算x的绝对值 SQL> select abs(-1.1) from dual; ABS(-1.1) ---------- 1.1 SQL> --计算x的余切值 SQL> select acos(1) from dual; ACOS(1) ---------- 0 SQL> --计算x的余弦值 SQL> select cos(1) from dual; COS(1) ---------- .540302306 SQL> --计算x的向上取整值 SQL> select ceil(3.14) from dual; CEIL(3.14) ---------- 4 SQL> --计算x的向下取整值 SQL> select floor(3.5) from dual; FLOOR(3.5) ---------- 3 SQL> --计算x的四舍五入取整值 SQL> select round(3.5) from dual; ROUND(3.5) ---------- 4 SQL> --计算以2为底4的对数值 SQL> select log(2,4) from dual; LOG(2,4) ---------- 2 SQL> --计算2的4次幂 SQL> select power(2,4) from dual; POWER(2,4) ---------- 16 SQL> --计算以5的平方根 SQL> select sqrt(5) from dual; SQRT(5) ---------- 2.23606798 SQL> --将数3.1415在第二位截断 SQL> select trunc(3.1415,2) from dual; TRUNC(3.1415,2) ---------------- 3.14
3)常用的日期函数有:add_months,last_day,months_between,extract。
add_months(x,y) 用于在某个时间x上加上额外的月份数y。
SQL> --在当前时间上加上额外3个月 SQL> select sysdate,add_months(sysdate,3) from dual; SYSDATE ADD_MONTHS(SYS -------------- -------------- 05-6月 -17 05-9月 -17last_day(x)用于计算当前月的最后一天。
SQL> select last_day(sysdate) from dual; LAST_DAY(SYSDA -------------- 30-6月 -17
months_between(x,y)用于计算两个日期间的月份差值数
SQL> select months_between(sysdate,add_months(sysdate,-3)) from dual; MONTHS_BETWEEN(SYSDATE,ADD_MONTHS(SYSDATE,-3)) ---------------------------------------------- 3EXTRACT(fmt FROM d),提取日期中的特定部分。
fmt 为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可以为 DATE 类型匹配,也可以与 TIMESTAMP 类型匹配;但是 HOUR、MINUTE、SECOND 必须与 TIMESTAMP 类型匹配。
HOUR 匹配的结果中没有加上时区,因此在中国运行的结果小 8 小时。
4)转换函数
转换函数将值从一种数据类型转换为另外一种数据类型。常见的转换函数有:
1、TO_CHAR(d|n[,fmt]):把日期和数字转换为制定格式的字符串。Fmt是格式化字符串
TO_DATE(X,[,fmt])把一个字符串以fmt格式转换成一个日期类型
TO_NUMBER(X,[,fmt])把一个字符串以fmt格式转换成一个数字类型
5)通用函数
NVL(X,VALUE)如果X为空,返回value,否则返回X
NVL2(x,value1,value2) 如果x非空,返回value1,否则返回value2
相关文章推荐
- Oracle SQL*plus常用的命令和函数
- MS SQL Server和Oracle的常用函数对比
- Oracle Sql 中常用字符串处理函数
- 常用函数SQL与Oracle的区别
- Oracle Sql 中常用字符串处理函数
- oracle SQL里常用的时间函数,经典推荐
- 全面复习之SQL(10)-oracle常用函数
- Oracle-21-SQL单行函数之字符函数
- SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等
- ORACLE常用SQL、存储过程和函数
- Oracle常用函数(SQL语句)
- Oracle常用sql语句(二)之组函数、多表查询
- Oracle简单查询,常用函数(SQL语句集)
- oracle and sqlsever 常用数学函数对比
- Oracle SQL*plus常用的命令和函数
- Oracle PL/SQL常用函数列表[转载]
- Oracle常用sql语句(二)之组函数、多表查询
- ORACLE SQL 常用函数总结
- ORACLE SQL 3 使用单行函数定制输出
- Oracle SQL语言之常用函数_超越OCP精通Oracle视频教程培训30