Oracle SQL:经典查询练手第三篇

发表于:2011-6-28 10:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡勇    来源:51Testing软件测试网采编

  1. /*--------9、哪些员工跟Hall(LAST_NAME)不在同一个部门。---------*/  
  2.  
  3. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES  
  4.   2  WHERE DEPARTMENT_ID NOT IN(  
  5.   3  SELECT DEPARTMENT_ID FROM HR.EMPLOYEES  
  6.   4  WHERE LAST_NAME = 'Hall');  
  7.    
  8. FIRST_NAME||''||LAST_NAME  
  9. ----------------------------------------------  
  10. Steven King  
  11. Neena Kochhar  
  12. Lex De Haan  
  13. Alexander Hunold  
  14. Bruce Ernst  
  15. David Austin  
  16. Valli Pataballa  
  17. Diana Lorentz  
  18. Nancy Greenberg  
  19. --...初始有72条数据  
  20.  
  21. --或者:  
  22.  
  23. SQL> SELECT e1.FIRST_NAME FROM EMPLOYEES e1,EMPLOYEES e2  
  24.   2  WHERE e1.DEPARTMENT_ID = e2.DEPARTMENT_ID(+)  
  25.   3  and e2.LAST_NAME(+) = 'Hall' 
  26.   4  and e2.LAST_NAME IS NULL;

  1. /*-------10、哪些员工跟William(FIRST_NAME)、Smith(LAST_NAME)做不一样的职位。--------*/  
  2.  
  3. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES  
  4.   2  WHERE JOB_ID <> (SELECT DISTINCT JOB_ID FROM EMPLOYEES  
  5.   3  WHERE FIRST_NAME = 'William' AND LAST_NAME = 'Smith');   
  6.  
  7. FIRST_NAME||''||LAST_NAME  
  8. ----------------------------------------------  
  9. Steven King  
  10. Neena Kochhar  
  11. Lex De Haan  
  12. Alexander Hunold  
  13. ----...初始有77条数据

  1. /*--------11、显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称。---------*/  
  2.  
  3. SQL> SELECT E.FIRST_NAME || ' ' || E.LAST_NAME AS NAME,  
  4.   2  E.COMMISSION_PCT,D.DEPARTMENT_NAME,L.CITY  
  5.   3  FROM HR.EMPLOYEES E,HR.DEPARTMENTS D,HR.LOCATIONS L  
  6.   4  WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID  
  7.   5  AND D.LOCATION_ID = L.LOCATION_ID  
  8.   6  AND E.COMMISSION_PCT IS NOT NULL;

  1. /*--------12、显示Executive部门有哪些职位。---------*/  
  2. SQL> SELECT DISTINCT E.JOB_ID FROM HR.EMPLOYEES E,HR.DEPARTMENTS D  
  3.   2  WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID  
  4.   3  AND D.DEPARTMENT_NAME = 'Executive';  
  5.    
  6. JOB_ID  
  7. ----------  
  8. AD_PRES  
  9. AD_VP

  1. /*--------13、整个公司中,最高工资和最低工资相差多少。---------*/  
  2. SQL> SELECT MAX(SALARY) - MIN(SALARY) FROM HR.EMPLOYEES;  
  3.    
  4. MAX(SALARY)-MIN(SALARY)  
  5. -----------------------  
  6.                   21900

  1. /*--------14、提成大于0 的人数。---------*/  
  2. SQL> SELECT COUNT(*) AS 提成大小0的人数 FROM HR.EMPLOYEES  
  3.   2  WHERE COMMISSION_PCT > 0;  
  4.    
  5.        提成大小0的人数  
  6. ---------------  
  7.              35  
  8. --或者  
  9.  
  10. SQL> SELECT COUNT(COMMISSION_PCT) AS 提成大小0的人数    
  11.   2   FROM HR.EMPLOYEES  
  12.   3   WHERE COMMISSION_PCT > 0;  
  13.        提成大小0的人数  
  14. ---------------  
  15.              35

54/5<12345>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号