oracle实现查询每一个部门的员工的基本信息详细举例

--先删除原先存在的表:
drop table emp;
--创建表emp
create table emp
(
     deptno number,
     ename varchar2(20),
     sal number
); 

--插入数据
--部门1的员工信息
insert into emp values(1,'王嘻嘻1',15000);
insert into emp values(1,'王嘻嘻2',1500);
insert into emp values(1,'王嘻嘻3',115000);
insert into emp values(1,'王嘻嘻4',12300);

--部门2的员工信息
insert into emp values(2,'王哈哈',14300);
insert into emp values(2,'王呵呵',16300);
insert into emp values(2,'王么么',11300);
insert into emp values(2,'王大大',10300);
select * from emp;

--选择每一个部门的前3名最高的工资人的信息
select * from
       (select deptno,ename,sal,
               row_number() over(
                            partition by deptno
                            order by sal desc) rn
                            from emp
       )
       where rn<=3;

运行如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-12 02:20:24

oracle实现查询每一个部门的员工的基本信息详细举例的相关文章

ORACLE分组查询和统计等

select flow_id,rw from (select t.flow_id ,rownum as rw from apex_030200.wwv_flow_list_templates t)  where rw >= 5 1.rownum只能用<如果使用>加别名 2.子查询引用只能在查询出的结果中引用,比如子查询没有查出flow_id,外层不能用,另外外层不能引用内层的t 3.薪水前三名,内层查出薪水 order desc的虚表外层使用rownum<3 4.merge可以实现

4.有关日期格式属性改动常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面能够跟:列名、表达式、别名、序号

?? 1 有关日期格式属性改动常识 NLS_DATE_FORMAT           DD-MON-RR select sysdate from dual; NLS_CURRENCY                ¥ 能够通过以下的方式查到上面的格式默认參数: 2 v$nls_parameters SQL>select * from v$nls_parameters; 结果略: 3改动默认參数 alter session set NLS_DATE_FORMAT='DD-MON-RR'; alt

4.有关日期格式属性修改常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面可以跟:列名、表达式、别名、序号

 1  有关日期格式属性修改 常识 NLS_DATE_FORMAT           DD-MON-RR select sysdate from dual; NLS_CURRENCY                 ¥ 可以通过下面的方式查到上面的格式默认参数: 2  v$nls_parameters SQL>select * from v$nls_parameters; 结果略: 3 修改默认参数 alter session set NLS_DATE_FORMAT='DD-MON-RR'

查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名

如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户下面的emp 和 dept 表间的一道思考题. 雇员表(emp) 记录了每个雇员的基本信息 NO  字段         类型            描述 1     empno       Number(4)    雇员编号 2     ename       Varchar2(10)      雇员姓名 3     job         Varchar2(9

ORACLE授权用户查询另一个用户下的表与视图

实际应用中,会遇到在某个用户下需要查询另一个用户下的表数据或视图的情况,然而在没有授权时,会提示无权限操作的错误.那就需要通过授权处理后,再能进行查询操作,下面我们来看看是怎么处理的. 一.系统权限说明: 1.用户权限 CREATE SESSIOIN 连接到数据库 CREATE TABLE    在用户的方案中创建表 CREATE SEQUENCE 在用户的方案中创建序列 CREATE VIEW     在用户的方案中创视图 CREATE PROCEDURE在用户的方案中创建存储过程,函数或包

Oracle 连接查询&lt;一&gt;

在Oracle数据库中,连接查询分为交叉连接.内连接.外链接3种类型.其中,交叉连接结果是所有其他连接结果的超集,而外连接结果又是内连接结果的超集. 交叉连接 交叉连接又称为笛卡尔积连接,是两个或多个 表之间的无条件连接.一个表中所有记录分别与其他表中所有记录进行记录.如果进行连接的表分别有n1,n2,n3...条记录,那么交叉连接的结果集中将有n1 x n2 x n3 x...条记录.例如,emp表中有14条记录,dept表中有4条记录,那么两个交叉连接后有56条记录,语句为 SQL> SEL

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释

Oracle复杂查询

数据分组, 分组函数max, min, avg, sum, count 查询工资最高的人的姓名 select ename from emp where sal = (select max(sal) from emp); 给所有低于平均工资的员工薪水上涨10% update emp set sal = (select avt(sal) from emp)*10% where sal<(select avt(sal) from emp); grout by 和 having 字句 groupt by

(四)Oracle条件查询,分页查询

1. SQL(基础查询) 1.1基础查询 1.1.1. 使用LIKE条件(模糊查询) 当用户在执行查询时,不能完全确定某些信息的查询条件,或者只知道信息的一部分,可以借助LIKE来实现模糊查询.LIKE需要借助两个通配符: %:表示0到多个字符 _:标识单个字符 这两个通配符可以配合使用,构造灵活的匹配条件.例如查询职员姓名中第二个字符是'A'的员工信息: SELECT ename, job FROM emp WHERE ename LIKE '_A%'; 1.1.2. 使用IN和NOT IN