Oracle查询语句(二)
来源:互联网 发布:苹果cms和海洋cms 编辑:程序博客网 时间:2024/06/05 15:01
–排序
–查询员工信息,按照月薪排序
order by 后面 可以跟 列名,表达式,别名,序号。
select * from emp order by sal;
–a 命令 appand 在上一句sql上追加语句。
a desc;类似于 select * from emp order by sal desc;(降序排列)
单行函数
–字符函数
select lower('hellO WORld') 转小写,upper('hellO WORld') 转大写,initcap('hello world') 首字母大写 from dual;
–substr(a,b) 从a中,第b位开始取,取右边所有的字符
select substr('Hello World',4) from dual;
–length 字符数 lengthb 字节数
select length('上海') 字符数, lengthb('上海') 字节数from dual 字符数 字节数 ---------- ---------- 2 4
–instr 在母串中查找子串,找到返回下标(从1开始),否则返回0
select instr('Hello World','ll') from dual;INSTR('HELLOWORLD','LL') ------------------------ 3
–lpad 左填充 rpad 右填充
select lpad('abcd',10,'*') 左,rpad('abcd',10,'*') 右 from dual;左 右---------- ---------- ******abcd abcd******
–trim 去掉前后指定的字符
select trim('H' from 'Hello WorldH') from dual;
–数字函数
select ROUND(45.926, 2) 一,ROUND(45.926, 1) 二, ROUND(45.926, 0) 三,ROUND(45.926, -1) 四, ROUND(45.926, -2) 五from dual
–日期函数
select sysdate from dual;SYSDATE -------------- 22-8月-16 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dualTO_CHAR(SYSDATE,'YY ------------------- 2016-8-22 15:39:21 select systimestamp from dual;SYSTIMESTAMP ---------------------------------------------------------- 22-8月-16 03.40.05.406000 下午 +08:00
–systimestamp时间戳
–昨天 今天 明天
select (sysdate-1) 昨天, sysdate 今天, (sysdate+1) 明天 from dual;
select hiredate+sysdate from emp;
select hiredate+sysdate from emp *第 1 行出现错误: ORA-00975: 不允许日期 + 日期
–计算工龄
select (sysdate-hiredate)/30 ,MONTHS_BETWEEN(sysdate,hiredate) from emp
–月份相加,ADD_MONTHS
select ADD_MONTHS(sysdate,114) from dual;ADD_MONTHS(SYS -------------- 21-2月 -26
–从今天开始算(2016.8.21星期日),下一个星期一
select next_day(sysdate,'星期一')from dual;
–从今天开始算(2016.8.21星期日),下一个星期二
select next_day(sysdate,'星期二')from dual;
–对日期进行四舍五入
select round(sysdate,'month')一,round(sysdate,'year')二 from dual;
–隐式转换的前提是:被转换对象必须是可以转换的。
–2016-08-21 10:27:23 今天是星期日
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss "今天是"day')from dual;TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS"今天是"DAY') -----------------------------------------------------------2016-08-21 10:28:37 今天是星期日
–查询员工的薪水:货币符号,两位小数,千位符
select sal,to_char(sal,'L9,999.99') from emp
–通用函数
–nvl2(a,b,c)当a为空时,返回c,否则返回b
select sal*12 薪水,nvl2(comm,comm,0)奖金 from emp;
–平均工资
select sum(sal)/count(*)一,avg(sal)二 from emp;
–平均奖金
select sum(comm)/count(*) 一,sum(comm)/count(comm)二,avg(comm)三 from emp;
–空值4.组函数会自动过滤空值
select count(*),count(comm) from emp; COUNT(*) COUNT(COMM) --------------------- 12 4
多行函数
–求各个部门的平均工资
select deptno,avg(sal) from emp group by depnto;
–group by多列:先按照第一列分;如果第一列相同,再按照第二列分
–查询平均工资大于2000的部门
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000
having和where的区别
如果条件中含有组函数,那么只能使用having
如果where和having语句都可以,那么尽量使用where语句。
–求10号部门的平均工资
select deptno,avg(sal)from empgroup by deptnohaving deptno=10;
–group by的增强
group by rollup(a,b) = group by a,b + group by a + group by null
select deptno,job,sum(sal) from emp group by rollup(deptno,job);
–SQLPLUS支持报表功能
break on deptno skip 2select deptno,job,sum(sal) from emp group by rollup(deptno,job);
0 0
- Oracle查询语句(二)
- ORACLE分页查询语句_rownum(二)
- Oracle分页查询语句(二)
- Oracle查询语句简单回顾(二)
- 查询语句(二)
- ORACLE EBS常用表及查询语句(二)
- oracle入门之 Select查询语句(二)
- oracle学习笔记(二)查询语句
- oracle数据库SQL查询语句练习二
- oracle中sql语句查询优化(二)
- SQL查询语句(二)
- Oracle查询语句(一)
- oracle查询语句(三)
- oracle基础详解(二)oracle查询语句和数据排序
- java程序员菜鸟进阶(二)oracle基础详解(二)oracle查询语句和数据排序
- Oracle常用sql语句(二)之组函数、多表查询
- oracle模糊查询(二)
- oracle模糊查询(二)
- 1032. 挖掘机技术哪家强(20)
- 构建自己的Java Web框架(四)之JAVA反射机制在框架中初步使用
- eas bos判断数据是否处于工作流中
- margin塌陷及处理
- C/C++ 代码安全(三)
- Oracle查询语句(二)
- float属性理解
- Java中equals和==的区别
- spring security下fileupload上传文件被拦截
- 高斯消元
- 前端新玩具——webGL简介
- HDU1536,SG函数(①打表,②回溯),简单应用示例2
- 致2016年——我走过的路,洒下的泪........
- 虚函数