资源描述:
《Oracle Les04_单行函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单行函数目标通过本章学习,您将可以:SQL中不同类型的函数。在SELECT语句中使用字符,数字和日期函数。描述转换型函数的用途。SQL函数函数输入参数1参数2参数n函数执行输出结果两种SQL函数函数单行函数多行函数单行函数单行函数:操作数据对象接受参数返回一个结果只对一行进行变换每行返回一个结果可以转换数据类型可以嵌套参数可以是一列或一个值function_name[(arg1,arg2,...)]单行函数转换字符数值日期通用单行函数字符函数字符函数LOWERUPPERINITCAPCONCATSUBSTRLENGTHINSTRLPAD
2、RPADTRIMREPLACE大小
3、写控制函数字符控制函数函数结果大小写控制函数这类函数改变字符的大小写。LOWER('SQLCourse')UPPER('SQLCourse')INITCAP('SQLCourse')sqlcourseSQLCOURSESqlCourse大小写控制函数显示员工Higgins的信息:SELECTemployee_id,last_name,department_idFROMemployeesWHERElast_name='higgins';norowsselectedSELECTemployee_id,last_name,department_idFROMemployeesWH
4、ERELOWER(last_name)='higgins';CONCAT('Hello','World')SUBSTR('HelloWorld',1,5)LENGTH('HelloWorld')INSTR('HelloWorld','W')LPAD(salary,10,'*')RPAD(salary,10,'*')TRIM('H'FROM'HelloWorld')HelloWorldHello106*****2400024000*****elloWorld函数结果字符控制函数这类函数控制字符:SELECTemployee_id,CONCAT(first_name,last
5、_name)NAME,job_id,LENGTH(last_name),INSTR(last_name,'a')"Contains'a'?"FROMemployeesWHERESUBSTR(job_id,4)='REP';字符控制函数123123数字函数ROUND:四舍五入ROUND(45.926,2)45.93TRUNC:截断TRUNC(45.926,2)45.92MOD:求余MOD(1600,300)100SELECTROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1)FROMDUAL;ROUND函数DUAL是一个‘伪表’,
6、可以用来测试函数和表达式。123312SELECTTRUNC(45.923,2),TRUNC(45.923),TRUNC(45.923,-2)FROMDUAL;TRUNC函数312123SELECTlast_name,salary,MOD(salary,5000)FROMemployeesWHEREjob_id='SA_REP';MOD函数日期Oracle内部使用数字存储日期:世纪,年,月,日,小时,分钟,秒。默认的日期格式是DD-MON-RR.可以只指定年的后两位在20世纪存放21世纪的日期。同样可以在21世纪存放20世纪的日期。SELECTlast_name,hire
7、_dateFROMemployeesWHERElast_namelike'G%';日期函数SYSDATE返回:日期时间日期的数学运算在日期上加上或减去一个数字结果仍为日期。两个日期相减返回日期之间相差的天数。可以用数字除24来向日期中加上或减去小时。日期的数学运算SELECTlast_name,(SYSDATE-hire_date)/7ASWEEKSFROMemployeesWHEREdepartment_id=90;日期函数两个日期相差的月数MONTHS_BETWEENADD_MONTHSNEXT_DAYLAST_DAYROUNDTRUNC向指定日期中加上若干月数指定日
8、期的下一个日期本月的最后一天日期四舍五入日期截断函数描述MONTHS_BETWEEN('01-SEP-95','11-JAN-94')日期函数ADD_MONTHS('11-JAN-94',6)NEXT_DAY('01-SEP-95','FRIDAY')LAST_DAY('01-FEB-95')19.6774194'11-JUL-94''08-SEP-95''28-FEB-95'ROUND(SYSDATE,'MONTH')01-AUG-95ROUND(SYSDATE,'YEAR')01-JAN-96TRUNC(SYSDATE,'