• oracle学习篇三:SQL查询



    select * from emp;

    --1.找出部门30的员工
    select * from emp where deptno = 30;

    --2.列出所有办事员(CLERK)的姓名,变化和部门编号
    select * from emp where job = upper('clerk');

    --3.找出佣金高于薪金的员工。
    select * from emp where comm > sal;

    --4.找出佣金高于薪金60%的员工。
    select *
    from emp
    where comm > sal * 0.6

    --5.找出部门10中所有的经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料
    select *
    from emp
    where (deptno = 10 and job = upper('manager'))
    or (deptno = 20 and job = upper('clerk'));


    --6.找出部门10中所有的经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料,既不是经理又不是办事员,但薪资大于等于2000的所有员工地详细信息
    select *
    from emp
    where (deptno = 10 and job = upper('manager'))
    or (deptno = 20 and job = upper('clerk'))
    or (job not in ('MANAGER', 'CLERK') and sal >= 2000);

    --7.找出收取佣金的员工地不同工作
    select distinct job from emp where comm is not null;

    --8.找出不收取佣金或收取佣金低于100的员工.
    select *
    from emp
    where comm is null
    or comm < 100;

    --9.找出各个月倒数第3天受雇的员工
    select LAST_DAY(HIREDATE)
    from emp
    select * from emp where LAST_DAY(HIREDATE) - 2 = HIREDATE;


    --10.找出早于12年前受雇的员工.
    select * from emp where months_between(sysdate, hiredate) / 12 > 12;

    --11.以首字母大写的方式显示所有员工姓名
    select initcap(ename) from emp;

    --12.显示正好为5个字符的员工姓名.
    select * from emp where length(ename) = 5;

    --13.显示不带“R”的员工姓名.
    select * from emp where ename not like '%R%';

    --14.显示所有员工共姓名前三个字符.
    select substr(ename, 0, 3) from emp;

    --15.显示所有员工,用“a"替换"A"
    select replace(ename, 'A', 'a') from emp;

    --16.显示满10年的员工姓名和授雇日期
    select ename, hiredate
    from emp
    where months_between(sysdate, hiredate) / 12 > 10;

    --17.显示员工的详细资料,按姓名排序
    select * from emp order by ename;

    --18.显示员工姓名和授雇日期,根据其服务年限,将最老的员工牌在最前面
    select ename, hiredate from emp order by hiredate;

    --19.显示所有员工的姓名/工作和薪资,按工作的降序排序,若共工作相同则按薪资排序
    select ename, job, sal from emp order by job desc, sal;

    --20.显示所有员工的姓名/加入公司的年份和月份,安排受雇日前所作的月排序,若月份相同则将最早年份的员工排在最前面。
    select ename, to_char(hiredate, 'yyyy') y, to_char(hiredate, 'mm') m
    from emp
    order by m, y;

    --21.显示在一个月为30天的情况,所有员工日薪资,忽略余数。
    select ename, round(sal / 30) from emp;

    --22.找出在(任何年份的)2月份受雇的员工。
    select * from emp where to_char(hiredate, 'mm') = '02';

    --23.对于每个员工显示其加入公司的天数。
    select ename, trunc(sysdate - hiredate) from emp;

    --24.显示姓名字段的任何位置包含“A”的所有员工地姓名。
    select ename from emp where ename like '%A%';

    --25.以年月日的方式显示所有员工的服务年限(大概)
    select ename,
    hiredate,
    trunc(months_between(sysdate, hiredate) / 12) y,
    trunc(mod(months_between(sysdate, hiredate), 12)) m,
    trunc(mod(sysdate - hiredate, 30)) d
    from emp;

     

  • 相关阅读:
    深入了解C语言
    $_SERVER变量结构
    整理了一份招PHP高级工程师的面试题
    深入探究VC —— 编译器cl.exe(2)【转】http://blog.csdn.net/wangningyu/article/details/4837419
    vs2010 工程设置,调试中的目录问题【转】http://www.cnblogs.com/mlj318/archive/2011/10/09/2203510.html
    深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452
    移植ffmpeg到VC环境心得 【转】
    深入了解VC++编译器【转】
    VC2010中"Include Directories" 和 "Additional Include Directories"的区别
    深入探究VC —— 资源编译器rc.exe(3)【转】http://blog.csdn.net/wangningyu/article/details/4844687
  • 原文地址:https://www.cnblogs.com/brant/p/5597922.html
Copyright © 2020-2023  润新知