zoukankan      html  css  js  c++  java
  • Oracle学习总结(5)—— SQL语句经典案例

    --0.所有员工信息

    SELECT * FROM emp

    --1.选择部门30的所有员工

    SELECT * FROM emp WHERE deptno=20

    --2.列出所有办事员(CLERK)的姓名,编号部门编号

    SELECT ename,empno,deptno FROM emp WHERE job = 'CLERK'

    --3.找出佣金高于薪金的员工

    SELECT ename,sal,comm FROM emp WHERE comm > sal

    --4.找出佣金高于薪金的60%的员工

    SELECT ename,sal,comm FROM emp WHERE comm>sal*0.6

    --5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料

    SELECT * FROM emp WHERE (deptno =10 AND job = 'MANAGER') OR (deptno = 20 AND job ='CLERK')

    --6.找出部门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)

    --7.找出收取佣金的员工的不同工作

    SELECT DISTINCT job FROM emp WHERE comm IS NOT NULL

    --8.找出不收取佣金或收取佣金低于100的员工

    SELECT ename,comm FROM emp WHERE comm IS NULL OR comm<100

    --9.找出各月倒数第三天受雇佣的所有员工

    SELECT ename,hiredate FROM emp WHERE last_day(hiredate)-hiredate=2

    --10.找出早于12年前受雇佣的员工

    SELECT ename,hiredate WHERE (to_char(SYSDATE,'YYYY')-to_char(hiredate,'YYYY'))>12

    --11.首字母大写的方式显示所有的员工姓名

    SELECT INITCAP(ename) FROM emp

    --12.显示姓名正好为5个字符的员工

    SELECT ename FROM emp WHERE ename LIKE '_____'

    SELECT ename FROM emp WHERE LENGTH(ename)=5

    --13.显示不带有“R”的员工姓名

    SELECT ename FROM emp WHERE ename NOT LIKE '%R%'

    --14.显示所有员工姓名的前三个字符

    SELECT SUBSTR(ename,1,3) AS ename FROM emp

    --15.显示所有员工的姓名,用“a”替换所有的“A”

    SELECT REPLACE(ename,'A','a') AS newname FROM emp

    --16.显示满10年服务年限的员工的姓名和受雇日期

    SELECT ename,hiredate FROM emp WHERE (to_char(SYSDATE,'YYYY') -to_char(hiredate,'YYYY'))>10

    --17.显示员工的所有资料,按姓名排序

    SELECT * FROM emp ORDER BY ename

    --18.显示员工的姓名和受雇日期,根据其年限将老员工排在前面

    SELECT * FROM emp ORDER BY hiredate ASC

    --19.显示所有员工的姓名,工作和薪金,按工作降序排列,工作相同则按薪金排序

    SELECT ename,job,sal FROM emp ORDER BY job DESC,sal ASC

    --20.显示所有员工的姓名,加入公司的年份和月份,按月份排序,月份相同则按最早年份排序

    SELECT ename,to_char(hiredate,'MM') AS MONTH,to_char(hiredate,'yyyy') AS YEAR FROM emp ORDER BY MONTH ASC,YEAR ASC

    --21. 显示在一个月为30天的情况下所有员工的日薪金,忽略余数

    SELECT ename,TRUNC(sal/30,0) AS daysal FROM emp

    --22.找出在任何年份的二月受雇佣的所有员工

    SELECT ename,hiredate FROM emp WHERE to_char(hiredate,'MM')=2

    --23.对于每个员工,显示其加入公司的天数

    SELECT ename,TRUNC(sysdate-hiredate) AS days FROM emp

    --24.显示姓名字段的任何位置包含“A”的所有员工的姓名

    SELECT ename FROM emp WHERE ename LIKE '%A%'

  • 相关阅读:
    javascript 回调函数定义 模板
    获得最近一天的提交,并使用winscp上传到服务器
    virltualbox 升级之后 苹果虚拟机报The installed support driver doesn't match the version of the user解决方案
    ESP-EYE V2.1 开发板 WINDOWS 10 开发入门
    centos 安装gitee备忘
    Javascript Module pattern template. Shows a class with a constructor and public/private methods/properties. Also shows compatibility with CommonJS(eg Node.JS) and AMD (eg requireJS) as well as in a br
    requirejs amd module load example
    js object template
    php 基础代码大全(不断完善中)
    自动化web前端测试,自动登录网站.目前发现最靠谱的方法是imacros
  • 原文地址:https://www.cnblogs.com/zhanghaiyang/p/7212781.html
Copyright © 2011-2022 走看看