oracle 内置函数
发布时间:2020-12-12 12:40:25 所属栏目:百科 来源:网络整理
导读:sql常用内置函数 --数学运算函数select abs(-10) from dual; --去绝对值select floor(1.1) from dual;--向下取整select ceil(1.1) from dual;--向上取整select ceil(-1.1) from dual;--向上取整select round(1.5) from dual;--四舍五入select sum(sal) from
sql常用内置函数--数学运算函数 select abs(-10) from dual; --去绝对值 select floor(1.1) from dual;--向下取整 select ceil(1.1) from dual;--向上取整 select ceil(-1.1) from dual;--向上取整 select round(1.5) from dual;--四舍五入 select sum(sal) from emp;--统计数字和 select sqrt(4) from dual; --开方 select trunc('1234.5678',3) from dual;--截取小数点后几位 select trunc('1234.5678',-3) from dual;--截取小数点前几位 select dbms_random.string('P',10) from dual;--产生随机字符 select round(dbms_random.value()*100) from dual;--产生随机数 --转换类函数 select sysdate from dual; select to_char(sysdate,'yyyy-MM-dd') from dual;--转换日期 select to_char(sysdate,'day') from dual;--转换星期 select to_char(sysdate,'HH24:mi:ss') from dual;--转换时间 select to_char(sysdate,'"公元"yyyy"年"mm"月"dd"日"') from dual;--转换日期,用双引号引入中文,整个内容包含在一个单引号内 select to_char(1234.5678,'9999D99') from dual;--数字转换 select to_char(1234.5678,'000000D99') from dual;--数字转换,自动补0 select trim(to_char(1234.5678,'999999D99') ) from dual;--数字转换,自动补空格 select to_char('15','000') from dual; select to_char('15','999') from dual; select to_char('15','FM000') from dual; --去掉空格了 select to_char('15','FM999') from dual; --去掉空格了 --其他转换函数 select to_date('2019-08-15','yyyy-MM-dd') from dual; select to_number('1001')+123 from dual; --字符串函数 select instr('hello every','h') from dual;--有的话返回下标,没有的话返回0,从1开始 select trim(' a a a ') from dual;--去掉前后空格 select replace(' a a a ',' ','') from dual;--替换全部空格 select length('hello everyone') from dual; select concat('hello','world') from dual; select substr('hello everyone',2,2) from dual;--从2开始截取。截两个 --空值替换函数 select empno,ename,nvl(comm,'0.00') from emp; select empno,nvl2(comm,'有奖金','无奖金') from emp; 使用内置函数查询的练习--1 找出不收取奖金或收取奖金低于100的雇员 select* from emp where empno not in (select empno from emp where comm>100); select * from emp where comm is null or comm<100; --2 显示正好为6个字符的雇员姓名 select ename from emp where length(ename)=6; --3 显示不带有R的雇员的姓名 select ename from emp where ename not like '%R%'; --4 显示所有雇员的姓名的前三个字符 select substr(ename,1,3) from emp; --5 显示所有雇员的姓名,用a替换所有A select replace(ename,'a','A') from emp; --6 显示在1981-7之后入职的所有雇员的姓名和加入公司的年份和月份 select ename,to_char(hiredate,'yyyy-MM') from emp where to_number(to_char(hiredate,'yyyy'))>1980 and to_number(to_char(hiredate,'MM'))>7; --7 列出按年薪排序的所有雇员的年薪 select ename,(sal+nvl(comm,'0.00'))*12 year_sal from emp order by year_sal desc; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |