《oracle常用sql函数》由会员分享,可在线阅读,更多相关《oracle常用sql函数(20页珍藏版)》请在金锄头文库上搜索。
1、Oracle的SQL函数分为单行函数和多行函数。单行函数只对单条记录有效,多行函数对多条记录有效。单行函数包括,字符、数字、日期、转换和普通函数。字符函数举例:全小写 LOWER(SQL Course) sql course全大写 UPPER(SQL Course) SQL COURSE 首字母大写 INITCAP(SQL Course) Sql Course拼接 CONCAT(Good, String) GoodString 取子串 SUBSTR(String,1,3) Str 求长度 LENGTH(String) 6数字函数举例:ROUND - 对数值进行四舍五入操作TRUNC - 截断。
2、注意截断和舍入的位数,可以是负数。ROUND (45.923, 2) 45.92 ROUND (45.923, 0) 46 ROUND (45.923, -1) 50 TRUNC (45.923, 2) 45.92 TRUNC (45.923) 45 TRUNC (45.923, -1) 40MOD - 返回两数相除的余数MOD(1600, 300) - 100日期函数:Oracle将日期按照内部格式将日期存成以下七个字节-世纪、年、月、日、时、分、秒。在Oracle中日期缺省的显示格式为:DD - MON - YY 。可以使用系统变量 SYSDATE 获取系统时间。查看 SYSDATE时,可
3、以使用虚拟表DUAL。举例:求两个日期间有多少个月份 MONTHS_BETWEEN(01-SEP-95,11-JAN-94) 19.774194在日期上加指定的月数 ADD_MONTHS(11-JAN-94,6) 11-JUL-94下一个星期几是什么时候 NEXT_DAY(01-SEP-95,FRIDAY) 08-SEP-95某月最后一天 LAST_DAY(01-SEP-95) 30-SEP-95把日期四舍五入到月份 ROUND(25-MAY-95,MONTH) 01-JUN-95 ROUND(25-MAY-95 ,YEAR) 01-JAN-95把日期截断到月份 TRUNC(25-MAY-95
4、 ,MONTH) 01-MAY-95 TRUNC(25-MAY-95 ,YEAR) 01-JAN-95转换函数TO_CHAR 将数字或日期转换为字符串TO_NUMBER 将字符串转换成数字TO_DATE 将字符串转换成日期在转换函数中会使用格式串TO_CHAR(date, fmt)格式串包含在中, 大小写敏感, 可以是任意有效的日期格式格式串:YYYY 表示完整的四位数字年YEAR 表示英文拼写的年MM 表示两位数字月MONTH 表示英文全拼的月DY 表示三位缩写的星期DAY 表示英文全拼的星期一些特殊用法:时间格式 HH24:MI:SS AM 15:45:32 PM在格式串中加入字符串 DD
5、 of MONTH 12 of OCTOBER用后缀拼出整个日期 ddspth fourteenthTO_CHAR(number, fmt)使用此函数将数字转换成数字 9 表示数字 0 强制为0 $ 设置美元符号 L 使用当前字符集的货币符号 . 小数点 , 千位分隔符可以使用TO_NUMBER将字符串转换成数字可以使用TO_DATE将字符串转换成格式日期TO_DATE (10 September 1992, dd Month YYYY)使用格式串TO_DATE(char , fmt)普通函数NULL值处理函数NVL (expr1, expr2) 如果expr1为NULL,返回expr2NVL
6、2 (expr1, expr2, expr3) 如果expr1为非空,则返回expr2,如果expr1为NULL,则返回expr3NULLIF (expr1, expr2) 如果expr1=expr2,返回NULL,否则返回expr1COALESCE (expr1, expr2, ., exprn) 返回表达式列表中的第一个非空表达式条件表达式,用case表达式或decode实现条件逻辑CASE表达式CASE expr WHEN comparison_expr1 THEN return_expr1 WHEN comparison_expr2 THEN return_expr2 WHEN com
7、parison_exprn THEN return_exprn ELSE else_exprENDdecode函数DECODE(col|expression, search1, result1 , search2,result2,., , default)分组函数:AVG (DISTINCT|ALL|n)COUNT (DISTINCT|ALL|expr|*)MAX (DISTINCT|ALL|expr)MIN (DISTINCT|ALL|expr)STDDEV (DISTINCT|ALL|n)SUM (DISTINCT|ALL|n)VARIANCE (DISTINCT|ALL|n)SQL中的单
8、记录函数1.ASCII返回与指定的字符对应的十进制数;SQL select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE- - - - 65 97 48 322.CHR给出整数,返回对应的字符;SQL select chr(54740) zhao,chr(65) chr65 from dual;ZH C- -赵 A3.CONCAT连接两个字符串;SQL select concat(010-,88888888)|转23 高乾竞电话 from dual;高乾竞电话-010-88888888转
9、234.INITCAP返回字符串并将字符串的第一个字母变为大写;SQL select initcap(smith) upp from dual;UPP-Smith5.INSTR(C1,C2,I,J)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的开始位置,默认为1J 出现的位置,默认为1SQL select instr(oracle traning,ra,1,2) instring from dual;INSTRING- 96.LENGTH返回字符串的长度;SQL select name,length(name),addr,lengt
10、h(addr),sal,length(to_char(sal) from gao.nchar_tst;NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)- - - - - -高乾竞 3 北京市海锭区 6 9999.99 77.LOWER返回字符串,并将所有的字符小写SQL select lower(AaBbCcDd)AaBbCcDd from dual;AABBCCDD-aabbccdd8.UPPER返回字符串,并将所有的字符大写SQL select upper(AaBbCcDd) upper from dual;UPPER-
11、AABBCCDD9.RPAD和LPAD(粘贴字符)RPAD 在列的右边粘贴字符LPAD 在列的左边粘贴字符SQL select lpad(rpad(gao,10,*),17,*)from dual;LPAD(RPAD(GAO,1-*gao*不够字符则用*来填满10.LTRIM和RTRIMLTRIM 删除左边出现的字符串RTRIM 删除右边出现的字符串SQL select ltrim(rtrim( gao qian jing , ), ) from dual;LTRIM(RTRIM(-gao qian jing11.SUBSTR(string,start,count)取子字符串,从start开始,取count个SQL select substr(13088888888,3,8) from dual;SUBSTR(-0888888812.REPLACE(string,s1,s2)string 希望被替换的字符或变量 s1 被替换的字符串s2 要替换的字符串SQL select replace(he love you,he,i) from dual;REPLACE(H-i love you13.SOUNDEX返回一个与给定的字符串读音相同的字符串SQL create table table1(xm varchar(8)