过滤和排序数据练习一

作者: 小小蒜头 | 来源:发表于2017-08-19 16:31 被阅读19次
    1. 显示出表employees中的全部job_id(不能重复)
    select distinct job_id from employees;
    
    1. 显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
    select employee_id ||','|| last_name ||','|| salary "OUT_PUT" from employees;
    
    1. 查询工资大于12000的员工姓名和工资
    select First_name,salary from employees where salary>12000;
    
    1. 查询员工号为176的员工的姓名和部门号
    select first_name,department_id from employees where employee_id=176;
    
    1. 选择工资不在5000到12000的员工的姓名和工资
    select first_name,salary from employees where salary not between 5000 and 12000;
    
    1. 选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间
     select first_name,job_id,HIRE_DATE from employees where HIRE_DATE between '1-2月-07' and '1-5月-07';
    
    1. 选择在20或50号部门工作的员工姓名和部门号
    select first_name,department_id from employees where department_id in(20,50);
    
    1. 选择在1994年雇用的员工的姓名和雇用时间
    select first_name,hire_date from employees where hire_date like '% -94';
    
    1. 选择公司中没有管理者的员工姓名及job_id
    select first_name,job_id from employees where manager_id is null;
    
    1. 选择公司中有奖金的员工姓名,工资和奖金级别
    select first_name,salary,commission_pct from employees where commission_pct is not null;
    
    1. 选择员工姓名的第三个字母是a的员工姓名
    select first_name from employees where first_name like '__a%';
    
    1. 选择姓名中有字母a和e的员工姓名
    select first_name from employees where first_name like '%a%' and first_name like '%e%';
    

    13.选择部门 30中的所有员工

    select * from employees where department_id=30;
    

    14.列出所有办事员(CLERK)的姓名、编号和部门编号
    (在Oracle中是区分大小写的,所以此时要么将来 CLERK大写, 要么使用upper函数)

    select ename,empno,deptno from  employees where department_id=30;
    
    1. 找出佣金高于薪金的员工(comm.字段表示佣金或奖金)
    select * from emp where comm > sal;
    
    1. 找出佣金高出奖金60%的员工
    select * from emp where comm > sal*0.6;
    
    1. 查找部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料
    select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK');
    
    1. 查找部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK),即不是经理又不是办事员,但薪金大于或等于2000的所有员工的详细资料
    select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK') or (job not in ('MANAGER','CLERK') and sal>=2000);
    
    1. 找出收取佣金的员工的不同的工作。工作会出现重复,所以 DISTINCT 关键字消除重复的列
    select distinct job from emp where comm is not null;
    
    1. 找出不收取佣金或收取的佣金低于100的员工
    select job from emp where comm is null or comm<100;
    

    相关文章

      网友评论

        本文标题:过滤和排序数据练习一

        本文链接:https://www.haomeiwen.com/subject/nbbtdxtx.html