Oracle_SQL(6) 单行函数
一、单行函数
1.定义:对表或视图的查询时,针对每行记录返回一个值的函数。
2.用途:用于select语句,where条件
3.分类:
数值函数 Number Functions
字符函数(返回字符) Character Functions Returning Character Values
字符函数(返回数值) Character Functions Returning Number Values
日期函数 Datetime Functions
转换函数 Conversion Functions
其它单值函数 Miscellaneous Single-Row Functions
二、数值函数
数值函数:接收一个数值参数,返回一个数值结果的函数。
常用函数:
1.MOD(m,n) m/n取余函数
SELECT MOD(11,4) "Modulus" FROM DUAL;
2.ABS(n) 取绝对值函数
SELECT ABS(-15) "Absolute" FROM DUAL;
3.SIGN(n) 符号函数,正数返回1,负数返回-1,0返回0
SELECT SIGN(-15) "Sign" FROM DUAL;
4.CEIL(n) 向上取整函数
SELECT CEIL(15.7) "Ceiling" FROM DUAL;
5.FLOOR(n) 向下取整函数
SELECT FLOOR(15.7) "Floor" FROM DUAL;
6.ROUND(m)/ROUND(m,n) 四舍五入函数
SELECT ROUND(15.193) "Round" FROM DUAL;
SELECT ROUND(15.193,1) "Round" FROM DUAL;
SELECT ROUND(15.193,-1) "Round" FROM DUAL;
7.TRUNC(m)/TRUNC(m,n) 截断函数
SELECT TRUNC(15.79) "Truncate" FROM DUAL;
SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;
SELECT TRUNC(15.79,-1) "Truncate" FROM DUAL;
不常用函数:
1.POWER(m,n) m的n次方函数
SELECT POWER(10,2) "Raised" FROM DUAL;
2.SQRT 平方根函数
SELECT SQRT(25) "Square root" FROM DUAL;
3.LOG(m,n) n的m次方根函数
SELECT LOG(10,100) "Log base 10 of 100" FROM DUAL;
SELECT LOG(10,POWER(10,2)) "Log base 10 of 100" FROM DUAL;
4.EXP e(e = 2.71828183)的m次方函数
SELECT EXP(4) "e to the 4th power" FROM DUAL;
5.LN m的e(e = 2.71828183)次方根函数
SELECT LN(exp(4)) "Natural log of exp(4)" FROM DUAL;
6.SIN 正玄函数
SELECT SIN(30 * 3.14159265359/180) "Sine of 30 degrees" FROM DUAL;
7.COS 余玄函数
SELECT COS(60 * 3.14159265359/180) "Cosine of 60 degrees" FROM DUAL;
8.TAN 正切函数
SELECT TAN(45 * 3.14159265359/180) "Tangent of 45 degrees" FROM DUAL;
9.ASIN 反正玄函数
SELECT ASIN(0.5) "Arc_Sine" FROM DUAL;
SELECT ASIN(SIN(30 * 3.14159265359/180)) "Arc_Sine" FROM DUAL;
10.ACOS 反余玄函数
SELECT ACOS(COS(60 * 3.14159265359/180)) "Arc_Cosine" FROM DUAL;
11.ATAN 反正切函数
SELECT ATAN(TAN(45 * 3.14159265359/180)) "Arc_Tangent" FROM DUAL;
12.ATAN2
SELECT ATAN2(0.3, 0.2) "Arc_Tangent2" FROM DUAL;
13.SINH 双曲正玄
SELECT SINH(1) "Hyperbolic sine of 1" FROM DUAL;
14.COSH 双曲余玄函数
SELECT COSH(0) "Hyperbolic cosine of 0" FROM DUAL;
15.TANH 双曲正切
SELECT TANH(.5) "Hyperbolic tangent of .5" FROM DUAL;
三、字符函数(返回字符) Character Functions Returning Character Values
1.CHR(n) 将数字转换为ASCII码
select CHR(65) from dual;
2.CONCAT(m,n) 连接字符串,等同于连接操作符||
select CONCAT('A','B') from dual;
select CONCAT(CONCAT('A','B'),'C') from dual;
select 'A'||'B'||'C' from dual;
3.INITCAP(n) 将字符中单词的首字母大写
SELECT INITCAP('hello sql') "Capitals" FROM DUAL;
4.UPPER(n) 将字符中字母大写
SELECT UPPER('hello sql') "Uppercase" FROM DUAL;
5.LOWER(n) 将字符中字母小写
SELECT LOWER('HELLO SQL') "Lowercase" FROM DUAL;
6.LPAD(c1,n,c2) 从左侧补齐字符串的长度
SELECT LPAD('Page 1',15,'*.') "LPAD example" FROM DUAL;
SELECT LPAD('Page 1',15) "LPAD example" FROM DUAL;
7.RPAD(c1,n,c2) 从右侧补齐字符串的长度
SELECT RPAD('Page 1',15,'*.') "LPAD example" FROM DUAL;
SELECT RPAD('Page 1',15) "LPAD example" FROM DUAL;
8.TRIM 修剪前后两端的空格或指定字符
SELECT TRIM (' AB C ') "TRIM Example" from dual;
--SELECT TRIM ('00098702348900','0') "TRIM Example" from dual;
SELECT TRIM (0 FROM 00098702348900) "TRIM Example" from dual;
9.LTRIM 修剪前端的空格或指定字符
SELECT LTRIM (' AB C ') "LTRIM Example" from dual;
SELECT LTRIM ('00098702348900','0') "LTRIM Example" from dual;
10.RTRIM 修剪后端的空格或指定字符
SELECT RTRIM (' AB C ') "RTRIM Example" from dual;
SELECT RTRIM ('00098702348900','0') "RTRIM Example" from dual;
11.SUBSTR(c,p,l) 从字符串指定位置截取指定长度的子字符串
SELECT SUBSTR('ABCDEFG',3,4) "Substring" FROM DUAL;
SELECT SUBSTR('ABCDEFG',3) "Substring" FROM DUAL;
SELECT SUBSTR('ABCDEFG',-3) "Substring" FROM DUAL;
SELECT SUBSTR('ABCDEFG',-3,4) "Substring" FROM DUAL;
SELECT SUBSTR('ABCDEFG',1,2) "Substring" FROM DUAL;
SELECT SUBSTR('ABCDEFG',0,2) "Substring" FROM DUAL;
SELECT SUBSTR('我是老师',1,4) "Substring" FROM DUAL;
SELECT SUBSTRB('我是老师',1,4) "Substring" FROM DUAL;
SELECT SUBSTRB('我是老师',1,3) "Substring" FROM DUAL;
SELECT SUBSTRB('A我B是C老F师G',1,3) "Substring" FROM DUAL;
SELECT SUBSTRC('我是老师',1,3) "Substring" FROM DUAL;
SELECT SUBSTR('A我B是C老F师G',1,3) "Substring" FROM DUAL;
SELECT SUBSTRC('A我B是C老F师G',1,3) "Substring" FROM DUAL;
12.REPLACE(c,sc,rc) 从c字符串中找到sc子串并用rc子串进行替换
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL;
SELECT REPLACE('我是老师','','*') FROM DUAL;
SELECT REPLACE('我是老师','') FROM DUAL;
13.TRANSLATE(c,from_c,to_c) 格式转化,按照from_c到to_c的模式转化字符串c
SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License" FROM DUAL;
SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'0123456789') FROM DUAL;
select TRANSLATE('2018','0123456789','零一二三四五六七八九') from dual;
select TRANSLATE('1588','0123456789','零壹贰叁肆伍陆柒捌玖') from dual;
四、字符函数(返回数值) Character Functions Returning Number Values
1.ASCII(c) 返回字符的ASCII码
SELECT ASCII('A') FROM DUAL;
2.INSTR(string,substring,position,occurrence)
查找,返回子字符串的位置
SELECT INSTR('CORPORATE FLOOR','O') "Instring" FROM DUAL;
SELECT INSTR('CORPORATE FLOOR','OR') "Instring" FROM DUAL;
SELECT INSTR('CORPORATE FLOOR','OR',3) "Instring" FROM DUAL;
SELECT INSTR('CORPORATE FLOOR','OR',-3) "Instring" FROM DUAL; --位置参数是负数时,从右向左找。
SELECT INSTR('CORPORATE FLOOR','OR',3,2) "Instring" FROM DUAL;
SELECT INSTR('CORPORATE FLOOR','OR',-3,2) "Instring" FROM DUAL;
select ename,INSTR(ename,'O') ,substr(ename,INSTR(ename,'O')) from emp
3.LENGTH(c) 返回字符串长度
SELECT LENGTH('ABCDEFG') "Length in characters" FROM DUAL;
SELECT LENGTH('我是老师') "Length in characters" FROM DUAL;
SELECT LENGTHB('ABCDEFG') "Length in bytes" FROM DUAL;
SELECT LENGTHB('我是老师') "Length in bytes" FROM DUAL;
五、日期函数 Datetime Functions
日期 +/- 数字 = 日期
SELECT sysdate+5,sysdate-10 FROM DUAL;
日期 - 日期 = 数字
SELECT sysdate-TO_DATE('2017-08-16','yyyy-mm-dd') FROM DUAL;
1.SYSDATE 当前日期 SYSTIMESTAMP、CURRENT_DATE、
CURRENT_TIMESTAMP、LOCALTIMESTAMP
select sysdate from dual;
select sysdate,SYSTIMESTAMP,CURRENT_DATE,
CURRENT_TIMESTAMP,LOCALTIMESTAMP from dual;
2.LAST_DAY(date) 取本月最后1天
select sysdate,last_day(sysdate) from dual;
3.NEXT_DAY(date,n) 获取下个星期几的日期
select sysdate,next_day(sysdate,1) from dual;
4.ADD_MONTHS(d,n) 月份加减数字
select sysdate,add_months(sysdate,1),add_months(sysdate,-2),
add_months(sysdate,0.5) from dual;
5.MONTHS_BETWEEN(d1,d2) 月份相减
SELECT MONTHS_BETWEEN(sysdate,TO_DATE('2017-08-16','yyyy-mm-dd')) "Months" FROM DUAL;
6.EXTRACT (类型 from date) 从日期中提取年月日时分秒
SELECT EXTRACT(YEAR FROM DATE '2017-03-07') FROM DUAL;
SELECT EXTRACT(MONTH FROM sysdate) FROM DUAL;
SELECT EXTRACT(DAY FROM sysdate) FROM DUAL;
SELECT EXTRACT(HOUR FROM LOCALTIMESTAMP) FROM DUAL;
SELECT EXTRACT(MINUTE FROM LOCALTIMESTAMP) FROM DUAL;
SELECT EXTRACT(SECOND FROM LOCALTIMESTAMP) FROM DUAL;
7.TRUNC(date) 日期截断
SELECT TRUNC(sysdate, 'yyyy') "New Year" FROM DUAL;
SELECT TRUNC(sysdate, 'mm') "New Months" FROM DUAL;
SELECT TRUNC(sysdate, 'dd') "New Day" FROM DUAL;
SELECT TRUNC(sysdate, 'hh24') "New Hour" FROM DUAL;
SELECT TRUNC(sysdate, 'mi') "New Minute" FROM DUAL;
8.ROUND(date) 日期四舍五入
SELECT ROUND(sysdate, 'yyyy') "New Year" FROM DUAL;
SELECT ROUND(sysdate, 'mm') "New Year" FROM DUAL;
SELECT ROUND(sysdate, 'dd') "New Year" FROM DUAL;
SELECT ROUND(sysdate, 'hh24') "New Year" FROM DUAL;
SELECT ROUND(sysdate, 'mi') "New Year" FROM DUAL;
六、转换函数 Conversion Functions
转换函数:将数值从一个类型转换到另一个类型。
1.BIN_TO_NUM 二进制转数字
SELECT BIN_TO_NUM(1,0,1,0) FROM DUAL;
2.TO_CHAR (datetime) 日期转字符串
SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
3.TO_DATE 字符串转日期
SELECT sysdate - to_date('2017-01-01','yyyy-mm-dd') from dual;
4.TO_NUMBER 字符转数字
SELECT to_number('012345') from dual;
SELECT to_number('0123.45','9999D99') from dual;
SELECT to_number('$0123.45','$9999D99') from dual;
七、其它单值函数 Miscellaneous Single-Row Functions
1.DECODE 条件选择函数
SELECT emp.*,decode(deptno,10,'ACCOUNTING',
20,'RESEARCH',30,'SALES','OPERATIONS') from emp;
SELECT emp.*,decode(sign(sal-1600),
1,'工资大于1600',0,'工资等于1600',-1,'工资小于1600') from emp;
SELECT emp.*,decode(sign(instr(ename,'A')),
1,'名字包含A',0,'名字不包含A') from emp;
2.coalesce (expr1, expr2, ..., exprn) 返回首个非空表达式
SELECT emp.*,COALESCE (comm,0) from emp;
3.NVL(c,v) NVL2(c,v1,v2) 空值转化
SELECT emp.*,sal+comm,sal+nvl(comm,0) from emp;
SELECT emp.*,nvl2(comm,sal+comm,sal) from emp;
4.USER 返回当前用户名\ID
SELECT USER from dual;
SELECT UID FROM DUAL;
5.SYS_GUID 返回由16字节组成的全局唯一标识符(原始值)。
SELECT SYS_GUID() from dual;
6.NULLIF(s1,s2) s1与s2相等时返回空,不等时返回s1
SELECT emp.deptno,dept.deptno,
nullif(emp.deptno,dept.deptno) from emp,dept;
7.GREATEST 返回集合中最大值
SELECT GREATEST ('A', 'B', 'C') "Greatest" FROM DUAL;
8.LEAST 返回集合中最小值
SELECT LEAST ('A', 'B', 'C') "least" FROM DUAL;
Oracle_SQL(6) 单行函数的更多相关文章
- Oracle_SQL函数-单行函数
SQL函数 SQL函数分类 SQL函数主要有两种,分为单行函数.多行函数 单行函数:只对一行进行变换,每行返回一个结果.可以转换数据类型,可以嵌套参数可以是一列或一个值 多行函数:多行函数,每次对一组 ...
- sql常用单行函数
学到数据库了,小记一下的喽~~~>>>>常用的单行函数 select * from employees 查询所有 select first_name,lower(first_n ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- Oracle 单行函数
一.什么是函数 任何东西,只要它能接收输入,对输入进行加工并产生输出,它就可以被称为函数. 二.单行函数简介 单行函数只对表中的一行数据进行操作,并且对每一行数据只产生一个输出结果.单行函数可以接受一 ...
- Oracle中的单行函数
Oracle中的单行函数 1 字符函数 UPPER()--将字符串转换为大写 SELECT UPPER('abc') FROM dual; LOWER()-将字符串转换为小写 SELECT LOWER ...
- oracle之单行函数
单行函数 ①.字符函数 LOWER(x):将x中的每一个单词都转换成小写 UPPER(x):将x中的每一个单词都转换成大写 INITCAP(x): 将x中的每一个单词的首字母转换成大写 CONC ...
- Oracle笔记(三)单行函数
-函数 函数像一个黑盒子一样(看不到里边的构造),有参数返回值,可以为我们完成一定的功能. -单行 这种函数会对结果中的每一行计算一次,每行返回一个结果,单行概念区别于分组函数. 单行函数主要分为以下 ...
- SQL之单行函数
单行函数语法: function name(column|expression,[arg1,arg2,...]) 参数说明: function name:函数名称 column:数据库列名 expre ...
- Oracle单行函数笔记
Oracle中单行函数的分类:1.字符函数substr():字符串截取select substr('我爱你,你知道么?',0,4) from dual执行结果:我爱你,length函数:字符串长度se ...
随机推荐
- tf.identity 个人理解
tf.identity is useful when you want to explicitly transport tensor between devices (like, from GPU t ...
- is 和 as 运算符
is和as运算符:is是判断是否是某个类型,返回true或falseo as Ren: 如果转换成功了,没问题:as 是用来转换如果没转换成功,不会报出错误,而是返回一个null值 例 实例化一个集合 ...
- vue pros 子组件接收父组件传递的值
1.子组件 ItemTemplate.vue <template> <div class="item"> <li v-for="pdata ...
- kubectl windows
https://storage.googleapis.com/kubernetes-release/release/v1.10.3/bin/windows/amd64/kubectl.exe
- 同时启动多个Tomcat 和 Linux部署多个tomcat
a.减压2份tomcat文件 b.修改其中一个tomcat 的http访问端口(默认为8080端口,这里改为8091) c.修改其中一个tomcat 的Shutdown端口(默认为8005端口,这里改 ...
- 1.3.5、CDH 搭建Hadoop在安装之前(端口---Cloudera Search使用的端口)
Cloudera Search使用的端口 在下表中,每个端口的“ 访问要求”列通常是“内部”或“外部”.在此上下文中,“内部”表示端口仅用于组件之间的通信; “外部”表示该端口可用于内部或外部通信. ...
- 生产环境nginx上传文件报错413 Request Entity Too Large
修改nginx配置文件/etc/nginx/nginx.conf 在http{}中添加 client_max_body_size 100m; 意思是设置上传文件大小
- C library:<cctype>(ctype.h)
1, isalnum(): check whether c is either a decimal digit or an uppercase or lowercase letter. 2, isal ...
- Allowing GPU memory growth
By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICE ...
- 善于利用python中的os模块
作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...