oracle查詢語句練習題與答案(scott使用者)____oracle

來源:互聯網
上載者:User
1 找出傭金高於薪金60%的僱員。    SELECT * FROM emp WHERE comm > (sal * 0.6);2 找出部門10中所有經理和部門20中所有辦事員的詳細資料。    SELECT * FROM emp WHERE (deptno = 10 AND job = 'MANAGER') OR (deptno = 20 AND job = 'CLERK');3 找出部門10中所有經理,部門20中所有辦事員以及既不是經理又不是辦事員但其薪金大於或等2000的所有僱員的詳細資料。       SELECT * FROM emp WHERE (deptno = 10 AND job = 'MANAGER')       OR (deptno = 20 AND job = 'CLERK'       OR (sal > 2000 AND job NOT IN ('MANAGER','CLERK')));4 找出收取傭金的僱員的不同工作。      SELECT DISTINCT job FROM emp WHERE comm IS NOT NULL;5 找出不收取傭金或收取的傭金低於300的僱員。      SELECT * FROM emp WHERE comm IS NULL OR comm < 300;6 找出各月最後一天受雇的所有僱員。          SELECT * FROM emp WHERE LAST_DAY(hiredate) = hiredate;7 找出晚於26年之前受雇的僱員。      SELECT * FROM emp WHERE SYSDATE > ADD_MONTHS(hiredate,26 * 12) ;8 顯示只有首字母大寫的的所有僱員的姓名。      SELECT INITCAP(ename) FROM emp;9 顯示正好為5個字元的僱員的姓名。      SELECT * FROM emp WHERE LENGTH(ename) = 5;10顯示不帶有“R”的僱員姓名。      SELECT * FROM emp WHERE ename NOT LIKE '%R%';11顯示所有僱員的姓名的前三個字元。      SELECT SUBSTR(ename,0,3) FROM emp;12顯所有僱員的姓名,用a替換所有“A”。      SELECT REPLACE(ename,'A','a') FROM emp;13顯示所有僱員的姓名以及滿10年服務年限的日期。     SELECT ename,ADD_MONTHS(hiredate,12 * 10) FROM emp;14顯示僱員的詳細資料,按姓名排序。      SELECT * FROM emp ORDER BY ename;15顯示僱員姓名,根據其服務年限,將最老的僱員排在最前面。      SELECT * FROM emp ORDER BY hiredate ASC;16顯示所有僱員的姓名、工作和薪金,按工作的降序排序,而工作按薪金排序。      SELECT ename,job,sal FROM emp ORDER BY job DESC,sal DESC; 17顯示所有僱員的姓名和加入公司的年份和月份,按僱員受雇日所在月排序,並將最早年份的項目排在最前面。      SELECT ename,TO_CHAR(hiredate,'yyyy-mm') FROM emp ORDER BY TO_CHAR(hiredate,'mm') ASC ,TO_CHAR(hiredate,'yyyy') ASC;18顯示在一個月為30天的情況下所有僱員的日薪金,取整。      SELECT ROUND(sal / 30,0) FROM emp;19找出在(任何年份的)2月受聘的所有僱員。      SELECT * FROM emp WHERE TO_CHAR(hiredate,'mm') = 2;20對於每個僱員,顯示其加入公司的天數。      SELECT CEIL(sysdate-hiredate) FROM emp;21.找出所有的普通員工:select * from emp where empno not in(select mgr from emp where mgr is not null)22.求部門中哪些人的薪水最高:Select ename,sal from emp join (select max(sal) max_sal,deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno= t.deptno);23.求部門平均薪水的等級:Select deptno,avg_sal,grade from (select deptno,avg(sal) avg_sal from emp group by deptno) t join salgrade s on (t.avg_sal between s.losal and s.hisal);24.求部門平均的薪水等級Select deptno,avg(grade) from (select deptno,ename,grade from emp join salgrade s on (emp.sal between s.losal and s.hisal)) t group by deptno;25.僱員中哪些人是經理人:Select ename from emp where empno in (select distinct mgr from emp);26.不準用組函數,求薪水的最高值Select distinct sal from emp where sal not in (select distinct e1.sal from emp e1 join emp e2 on(e1.sal < e2.sal));27.求平均薪水最高的部門的部門編號Select deptno,avg_sal from (select avg(sal) avg_sal,deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from (select avg(sal) avg_sal,deptno from emp group by deptno));28.求平均薪水最高的部門的部門名字select dname from dept wheredeptno=(Select deptno from (select avg(sal) avg_sal,deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from (select avg(sal) avg_sal,deptno from emp group by deptno)))29.求比普通員工的最高薪水還要高的經理人名稱Select ename from emp where  empno in (select distinct mgr from emp where mgr is not null) and sal >(select max(sal) from emp where empno not in(select distinct mgr from emp where mgr is not null));

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.