【Oracle学习笔记】单行函数
单行函数的概念:单行函数:接受一个数据,输出一个数据; 常见字符函数大小写相关: LOWER,UPPER,INITCAP
example: SELECT lower('Hello'),upper('Hello'),initcap('Hello') FROM dual;
example: SELECT trim('H' FROM 'HelloHH'),ltrim('HelloHH','H'),rtrim('HelloHH','H') FROM dual;
grammar : lpad(数值,多少位,填充内容) rpad(数值,填充内容) example : SELECT lpad(1000,7,'*'),rpad(1000,'*') FROM dual;
grammar : instr(原来的字符串,要查找位置的字符串) example : SELECT instr('hello tom','tom') FROM dual;
grammar : substr(字符串,从哪个位置开始截取,截取多少个字符[不写则截取到最后一个]) example: SELECT substr('hello',3,2) FROM dual;
example : SELECT length('tom') FROM dual;
example : SELECT concat('tom','my') FROM dual;
example: SELECT replace('hello','h','xxx') FROM dual;
常用字符函数例子整合: SELECT lower('Hello'),initcap('Hello') FROM dual;
SELECT trim('H' FROM 'HelloHH'),'H') FROM dual;
SELECT lpad(1000,'*') FROM dual;
SELECT instr('hello tom','tom') FROM dual;
SELECT substr('hello',2) FROM dual;
SELECT length('tom') FROM dual;
SELECT concat('tom','my') FROM dual;
SELECT replace('hello','xxx') FROM dual;
常见数值函数
example : SELECT round(123.456,2),round(123.456,-2),round(123.45,0),round(123.456)
FROM dual;
example : SELECT trunc(12.456,trunc(123.456,trunc(123.45,trunc(123.456)
FROM dual;
example : SELECT mod(12,5) FROM dual;
常用数值函数例子整合: SELECT round(123.456,round(123.456)
FROM dual;
SELECT trunc(12.456,trunc(123.456)
FROM dual;
SELECT mod(12,5)
FROM dual;
常见日期函数
example : SELECT sysdate FROM dual;
example : 获取emp表中员工的入职日期到今天相差的月数 SELECT ename,months_between(sysdate,hiredate) FROM emp;
exmaple : 获取三个月以后的日期 SELECT add_months(sysdate,3) FROM dual;
example : SELECT last_day(sysdate) FROM dual;
example : 获取当前日期的年份 SELECT extract(YEAR FROM sysdate) FROM dual;
example : 获取当前日期的月份 SELECT extract(MONTH FROM sysdate) FROM dual;
example : 获取当前日期的号数 SELECT extract(DAY FROM sysdate) FROM dual;
常见日期函数例子整合: SELECT sysdate FROM dual;
SELECT ename,hiredate) FROM emp;
SELECT add_months(sysdate,3) FROM dual;
SELECT last_day(sysdate) FROM dual;
SELECT extract(YEAR FROM sysdate) FROM dual;
SELECT extract(MONTH FROM sysdate) FROM dual;
SELECT extract(DAY FROM sysdate) FROM dual;
常见转换函数
example : 将日期转换为指定格式的字符 SELECT to_char(sysdate,'YYYY-MM-DD DAY HH24:MM:SS') FROM dual;
example : 将数值转换为指定格式的字符 SELECT to_char(123.45,'L9,999,999.00') FROM dual;
example : SELECT to_date('1980-01-01','YYYY-MM-DD') FROM dual;
example : SELECT to_number('$1,222.34','$9,999.99') FROM dual;
常见转换函数例子整合: SELECT to_char(sysdate,'YYYY-MM-DD DAY HH24:MM:SS') FROM dual;
SELECT to_char(123.45,999.00') FROM dual;
SELECT to_date('1980-01-01','YYYY-MM-DD') FROM dual;
SELECT to_number('$1,999.99') FROM dual;
其他函数空值转换函数:
example : SELECT ename,comm,nvl(comm,0) FROM emp;
如果字段comm为空,则用与comm数值类型相同的0代替
example : SELECT ename,nvl2(comm,0,sal) FROM emp;
如果comm字段为空,则用0代替,如果不为空,则用sal代替
exmaple : SELECT nullif('123','123') FROM dual;
控制转换函数例子整合: SELECT ename,0) FROM emp;
SELECT ename,sal) FROM emp;
SELECT nullif('123','123') FROM dual;
条件分支函数
example : SELECT ename,deptno,sal,CASE deptno WHEN 10 THEN sal + 100 WHEN 20 THEN sal + 200 WHEN 30 THEN sal + 300 ELSE sal END AS salary FROM emp;
example : 按照部门号码进行薪资的增加,部门号为10,薪资增加100,部门号为20薪资增加200,部门号为30,薪资增加300,其他则没有变化 SELECT ename,decode(deptno,10,sal + 100,20,sal + 200,30,sal + 300,sal) AS salary FROM emp;
SELECT ename,CASE WHEN deptno = 10 THEN sal +100 WHEN deptno = 20 THEN sal +200 WHEN deptno = 30 THEN sal +300 ELSE sal END AS salary FROM emp;
decode是一个函数, case是一个表达式 条件分支函数例子整合: SELECT ename,sal) AS salary FROM emp;
SELECT ename,CASE deptno WHEN 10 THEN sal + 100 WHEN 20 THEN sal + 200 WHEN 30 THEN sal + 300 ELSE sal END AS salary FROM emp;
SELECT ename,CASE WHEN deptno = 10 THEN sal +100 WHEN deptno = 20 THEN sal +200 WHEN deptno = 30 THEN sal +300 ELSE sal END AS salary FROM emp; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |