zoukankan      html  css  js  c++  java
  • SQL练习汇总

     1 --1.选择部门30中的所有员工.
     2 select * from emp where deptno=30
     3 --2.列出所有办事员(CLERK)的姓名,编号和部门编号.
     4 select ename,empno,deptno from emp where job='CLERK'
     5 --3.找出佣金高于薪金的员工.
     6 select * from emp where sal<comm
     7 --4.找出佣金高于薪金的60%的员工.
     8 select * from emp where sal*0.6 <comm
     9 --5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.
    10 select * from emp where (job='MANAGER' and deptno=10) or (deptno=20 and job='CLERK')
    11 --6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料.
    12 select * from emp where (job='MANAGER' and deptno=10) or (deptno=20 and job='CLERK')or (job<>'MANAGER' and job<>'CLERK' and sal>=2000)
    13 --7.找出收取佣金的员工的不同工作.
    14 select distinct job from emp where comm is not null
    15 --8.找出不收取佣金或收取的佣金低于100的员工.
    16 select * from emp where comm is  null or comm <100
    17 --9.找出各月倒数第3天受雇的所有员工.
    18 select * from emp where hiredate=last_day(hiredate)-2
    19 --10.找出早于12年前受雇的员工.
    20 --11.以首字母大写的方式显示所有员工的姓名
    21 select INITCAP(ename) from emp 
    22 --12.显示正好为5个字符的员工的姓名.
    23 select ename from emp where length(ename)=5
    24 --13.显示不带有"R"的员工的姓名.
    25 select * from emp where ename not like '%R%'
    26 --14.显示所有员工姓名的前三个字符.
    27 select substr(ename,1,3) from emp
    28 --15.显示所有员工的姓名,用a替换所有"A"
    29 select replace(ename,'A','a') from emp 
    30 --16.显示满35年服务年限的员工的姓名和受雇日期.
    31 select ename,hiredate, floor((sysdate-hiredate)/365) from emp  where (sysdate-hiredate)/365>35
    32 --17.显示员工的详细资料,按姓名排序.
    33 select * from emp order by ename
    34 --18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.
    35 select ename ,hiredate,floor((sysdate-hiredate)/365) years from emp order by hiredate asc
    36 --19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.
    37 select ename,job,sal from emp order by job desc,sal
    38 --20.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.
    39 select ename,hiredate,to_char(hiredate,'yyyy') years,to_char(hiredate,'mm') ms  from emp order by ms,hiredate 
    40 --21.显示在一个月为30天的情况所有员工的日薪金,忽略余数. 
    41 select floor((sal+nvl(comm,0))/30) from emp 
    42 --22.找出在(任何年份的)2月受聘的所有员工。
    43 select * from emp where to_char(hiredate,'mm')=2
    44 --23.对于每个员工,显示其加入公司的天数.
    45 select ename,sysdate-hiredate from emp
    46 --24.显示姓名字段的任何位置包含"A"的所有员工的姓名.
    47 select * from emp where ename like '%A%'
    48 --25.以年月日的方式显示所有员工的服务年限.
    49 select ename,floor(floor(months_between(sysdate,hiredate))/12),mod(floor(months_between(sysdate,hiredate)),12),floor(mod(sysdate-hiredate,30)) from emp 
  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/cao-yin/p/9744287.html
Copyright © 2011-2022 走看看