zoukankan      html  css  js  c++  java
  • sql 查询语句的练习2

    --14.列出所有雇员的雇员名称、部门名称和薪金。
    select e.ename,d.dname,e.sal from emp e,dept d where e.deptno = d.deptno;
    --16.列出分配有雇员数量的所有部门的详细信息即使是分配有0个雇员。
    select d.deptno,d.dname,d.loc,nvl(e.namenum,0) from(select deptno,count(ename) namenum from emp group by deptno) e,dept d where e.deptno(+)=d.deptno;
    --17.列出各种类别工作的最低工资。
    select job,min(sal+nvl(comm,0)) from emp group by job;
    --18.列出各个部门的MANAGER(经理)的最低薪金。
    select min(sal) from emp where job='MANAGER';
    --19.列出按计算的字段排序的所有雇员的年薪。
    select ename,sal*12 tsal from emp order by tsal asc;

    --第三部分:
    --1.找出各月倒数第3天受雇的所有员工.
    select ename,hiredate from emp where hiredate = last_day(hiredate)-2;
    select hiredate from emp;
    --2.找出早于12年前受雇的员工.
    select ename,hiredate from emp where Months_between(sysdate,hiredate)/12>12;
    --3.以首字母大写的方式显示所有员工的姓名.
    select initcap(ename) from emp;
    --4.显示正好为5个字符的员工的姓名.
    select ename from emp where length(ename)=5;
    --5.显示不带有"R"的员工的姓名
    select ename from emp where ename not like '%R%';
    --6.显示所有员工姓名的前三个字符.
    select Substr(ename,1,3) from emp;
    --7.显示所有员工的姓名,用a替换所有"A"
    select replace(ename,'A','a') from emp;
    --8.显示满10年服务年限的员工的姓名和受雇日期.:
    select ename,hiredate from emp where Months_between(sysdate,hiredate)/12 >10;
    --9.显示员工的详细资料,按姓名排序.
    select * from emp order by ename;
    --10.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.
    select ename,hiredate,Months_between(sysdate,hiredate)/12 worktime from emp order by worktime desc;
    --11.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.
    select ename,job,sal from emp order by job desc,sal desc;
    --12.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.
    select ename,to_char(hiredate,'yyyy') "年份",to_char(hiredate,'mm') "月份" from emp order by '月份' asc,'年份';
    --13.显示在一个月为30天的情况所有员工的日薪金,忽略余数.
    select ename,trunc(sal/30) from emp;
    --14.找出在(任何年份的)2月受聘的所有员工。
    select ename,hiredate from emp where to_char(hiredate,'mm') =2; --to_number
    --15.对于每个员工,显示其加入公司的天数.
    select ename,trunc(sysdate-hiredate) from emp;
    --16.显示姓名字段的任何位置包含"A"的所有员工的姓名.
    select ename from emp where ename like '%A%';
    17.以年月日的方式显示所有员工的服务年限. (大概)
    select ename,
    trunc((sysdate - hiredate) / 365) "年",
    trunc(mod((sysdate - hiredate),365) / 30) "月",
    trunc(mod(mod((sysdate - hiredate),365),30)) "日"
    from emp

  • 相关阅读:
    只因写了一段爬虫,公司200多人被抓!
    中国顶级程序员图鉴
    漫画 | 外行对程序员误会有多深!
    关于深夜技术事故纪实录的若干问题回复
    富士康14跳被我赶上了,流水线车间真的没有梦想 | 十年系列
    祖国和我们小山村的希望
    互联网从此没有 BAT
    程序员,职场上请远离这种人!
    HTML5漂亮实用的电子书
    这个jQuery导航菜单怎么样
  • 原文地址:https://www.cnblogs.com/cqming/p/10742314.html
Copyright © 2011-2022 走看看