数值函数: 1、四舍五入函数round() from dual:一行一列组成 select round(23.4) from dual;--默认不写m表示m为0 select round(23.45,1) from dual;--1表示保留小数点后一位,那么是小数点的第二位四舍五入 select round(23.45,-1) from dual;---1表示小数点前一位四舍五入取整,前一位是3四舍五入为20 2、取整函数: select ceil(23.45),floor(23.45) from dual; 3、常用计算: abs(n)绝对值函数: select abs(23.45),abs(-23),abs(0) from dual; mod(m,n):取余函数,如果m和n中有一个值为null值,则结果返回null值 select mod(5,2) from dual; select mod(5,null) from dual; power(m,n):表示返回m的n次幂 select power(2,3),power(null,2) from dual; sqrt(n):求平方根的函数 select sqrt(16) from dual; 4、三角函数: sin(n),asin(n):n代表弧度 select sin(3.14) from dual; cos(n),acos(n); 字符函数: 1、大小写转换函数:upper(char),lower(char),initcap(char),把首字母转为大写 select upper('abcde'),lower('ADe'),initcap('asd') from dual; 2、获取子字符串函数:substr(char,[m[n]]),n如果省略代表从m截取到字符串的末尾 m为0表示从字符串的首字母开始截取 m为负数表示从字符串的尾部开始截取 select substr('abcde',2,3);substr('abcde',2),substr('abcde',-2,1) from dual; 3、获取字符串长度的函数:length(char) select length('abc ') from dual; 4、字符串连接函数:concat(char1,char2);与||操作符的作用一样 select concat('ab','cd') from dual; select 'ab' ||'cd' from dual; 5、去除子串函数:trim(c2 from c1),c2是一个字符,c1是字符串 select trim('c' from 'cdccec') from dual;--dcce,去除左右2边是c开始的字符 select trim('c' from 'ccdd') from dual;--dd ltrim(c1[,c2]);c1是字符串,c2是字符,从头部去除一个字符 rtrim(c1[,c2]): trim(c1):代表去除左右2边的空格 ltrim(c1):只有一个参数的话代表去除左边的空格 rtrim(c1):只有一个参数的话代表去除右边的空格 7、替换函数replace() select replace('abcde','a','A')from dual select replace('abcde','a')from dual;--替换为空格 select replace('abcde','ab',A) from dual; 日期函数: 系统时间函数:SYSDATE 默认格式DD-MM-YY(日月年) ADD_MONTHS(date,i):select add_months(sysdate,3),add_months(sysdate,-3) from dual; NEXT_DAY(date,char):select next_day(sysdate,'星期一') from dual; LAST_DAY(char):select last_day(sysdate) from dual; MONTHS_BETWEEN(char1,char2):计算2个日期之间间隔的月份 select months_between('20-5月-15','10-1月-15') from dual; 日期操作函数: 获取年份、月份、日期、小时 提取指定日期部分的函数 select extract(year from sysdate) from dual; select extract(month from sysdate) from dual; select extract(day from sysdate) from dual; select extract(hour from timestamp '2015-10-1 17:22:22') from dual; 转换函数: 日期转换为字符的函数 TO_CHAR(date[,fmt[,params]]):date:将要转换的日期、fmt:转换的格式、params:日期的语言 默认是DD-MM-YY select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;//默认最后一个参数不写 字符转换为日期的函数 TO_DATE(char[,fmt[,params]]): select to_date('2015-05-22','YYYY-MM-DD') FROM DUAL; //注意:to_date()按照系统默认的格式显示日期 数字转换为字符的函数 select to_char(12345.678,'$99,999.999') from dual; 字符转换为数字的函数 TO_NUMBER(char[parms]); select to_number('$1,000','$9999') from dual;
SQL中的单记录函数
1.ASCII返回与指定的字符对应的十进制数;
SQL>select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2.CHR给出整数,返回对应的字符;
SQL>select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
赵 A
3.CONCAT连接两个字符串;
SQL>select concat('010-','88888888')||'转23' 高乾竞电话 from dual;
高乾竞电话
----------------
010-88888888转23
4.INITCAP返回字符串并将字符串的第一个字母变为大写;
SQL>select initcap('smith') upp from dual;
UPP
-----
Smith
5.INSTR(C1,C2,I,J)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL>select instr('oracletraning','ra',1,2) instring from dual;
INSTRING
---------
9
6.LENGTH返回字符串的长度;
SQL>select name,length(name),addr,length(addr),sal,length(to_char(sal)) from .nchar_tst;
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ --------- --------------------
高乾竞 3 北京市海锭区 6 9999.99 7
7.LOWER返回字符串,并将所有的字符小写
SQL>select lower('AaBbCcDd')AaBbCcDd from dual;
AABBCCDD
--------
aabbclearcase/" target="_blank" >ccdd
8.UPPER返回字符串,并将所有的字符大写
SQL>select upper('AaBbCcDd') upper from dual;
UPPER
--------
AABBCCDD
9.RPAD和LPAD(粘贴字符)
RPAD 在列的右边粘贴字符
LPAD 在列的左边粘贴字符
SQL>select lpad(rpad('gao',10,'*'),17,'*')from dual;
LPAD(RPAD('GAO',1
-----------------
*******gao*******
不够字符则用*来填满
10.LTRIM和RTRIM
LTRIM 删除左边出现的字符串
RTRIM 删除右边出现的字符串
SQL>select ltrim(rtrim(' gao qian jing ',' '),' ') from dual;
LTRIM(RTRIM('
-------------
gao qian jing
11.SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SQL>select substr('13088888888',3,8) from dual;
SUBSTR('
--------
08888888
12.REPLACE('string','s1','s2')
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
SQL>select replace('he love you','he','i') from dual;
REPLACE('HELOVEYOU','HE','I')
------------------------------
i love you
13.SOUNDEX返回一个与给定的字符串读音相同的字符串
SQL>create table table1(xm varchar(8));
SQL>insert into table1 values('weather');
SQL>insert into table1 values('wether');
SQL>insert into table1 values('gao');
SQL>select xm from table1 where soundex(xm)=soundex('weather');
XM
--------
weather
wether
14.TRIM('s' from 'string')
LEADING 剪掉前面的字符
TRAILING 剪掉后面的字符
如果不指定,默认为空格符
15.ABS返回指定值的绝对值
SQL>select abs(100),abs(-100) from dual;
ABS(100) ABS(-100)
--------- ---------
100 100
16.ACOS给出反余弦的值
SQL>select acos(-1) from dual;
ACOS(-1)
---------
3.1415927
17.ASIN给出反正弦的值
SQL>select asin(0.5) from dual;
ASIN(0.5)
---------
.52359878
18.ATAN返回一个数字的反正切值
SQL>select atan(1) from dual;
ATAN(1)
---------
.78539816
19.CEIL返回大于或等于给出数字的最小整数
SQL>select ceil(3.1415927) from dual;
CEIL(3.1415927)
---------------
4
20.COS返回一个给定数字的余弦
SQL>select cos(-3.1415927) from dual;
COS(-3.1415927)
---------------
-1
21.COSH返回一个数字反余弦值
SQL>select cosh(20) from dual;
COSH(20)
---------
242582598
22.EXP返回一个数字e的n次方根
SQL>select exp(2),exp(1) from dual;
EXP(2) EXP(1)
--------- ---------
7.3890561 2.7182818
23.FLOOR对给定的数字取整数
SQL>select floor(2345.67) from dual;
FLOOR(2345.67)
--------------
2345
24.LN返回一个数字的对数值
SQL>select ln(1),ln(2),ln(2.7182818) from dual;
LN(1) LN(2) LN(2.7182818)
--------- --------- -------------
0 .69314718 .99999999
25.LOG(n1,n2)返回一个以n1为底n2的对数
SQL>select log(2,1),log(2,4) from dual;
LOG(2,1) LOG(2,4)
--------- ---------
0 2