龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle SQL:经典查询练手第三篇(1)(3)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
/* --------7、哪些员工和Chen(LAST_NAME)同部门。---------*/ SQL SELECT FIRST_NAME FROM EMPLOYEES 2 WHERE DEPARTMENT_ID IN 3( SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME= 'Chen' ) 4 AN

  1. /*--------7、哪些员工和Chen(LAST_NAME)同部门。---------*/  
  2.  
  3. SQL> SELECT FIRST_NAME FROM EMPLOYEES  
  4.   2  WHERE DEPARTMENT_ID IN 
  5.   3  (SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME = 'Chen')  
  6.   4  AND LAST_NAME <> 'Chen';  
  7.    
  8. FIRST_NAME  
  9. --------------------  
  10. Nancy  
  11. Daniel  
  12. Ismael  
  13. Jose Manuel  
  14. Luis  
  15. --或者--  
  16.  
  17. SQL> SELECT E1.FIRST_NAME FROM EMPLOYEES E1,EMPLOYEES E2  
  18.   2  WHERE E1.DEPARTMENT_ID = E2.DEPARTMENT_ID  
  19.   3  AND E2.LAST_NAME = 'Chen' AND E1.LAST_NAME <> 'Chen';  
  20.    
  21. FIRST_NAME  
  22. --------------------  
  23. Nancy  
  24. Daniel  
  25. Ismael  
  26. Jose Manuel  
  27. Luis  
  28.  
  29. /*--------8、哪些员工跟De Haan(LAST_NAME)做一样职位。---------*/  
  30. SQL> SELECT FIRST_NAME FROM EMPLOYEES  
  31.   2  WHERE JOB_ID IN 
  32.   3  (SELECT JOB_ID FROM EMPLOYEES  
  33.   4  WHERE LAST_NAME = 'De Haan')  
  34.   5  AND LAST_NAME <> 'De Haan';  
  35.    
  36. FIRST_NAME  
  37. --------------------  
  38. Neena  
  39.  
  40. --或者--  
  41.  
  42. SQL> SELECT E1.FIRST_NAME FROM EMPLOYEES E1,EMPLOYEES E2  
  43.   2  WHERE E1.JOB_ID = E2.JOB_ID   
  44.   3  AND E2.LAST_NAME = 'De Haan' AND E1.LAST_NAME <> 'De Haan';  
  45.    
  46. FIRST_NAME  
  47. --------------------  
  48. Neena  
  49.  
  50. /*--------9、哪些员工跟Hall(LAST_NAME)不在同一个部门。---------*/  
  51.  
  52. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES  
  53.   2  WHERE DEPARTMENT_ID NOT IN(  
  54.   3  SELECT DEPARTMENT_ID FROM HR.EMPLOYEES  
  55.   4  WHERE LAST_NAME = 'Hall');  
  56.    
  57. FIRST_NAME||''||LAST_NAME  
  58. ----------------------------------------------  
  59. Steven King  
  60. Neena Kochhar  
  61. Lex De Haan  
  62. Alexander Hunold  
  63. Bruce Ernst  
  64. David Austin  
  65. Valli Pataballa  
  66. Diana Lorentz  
  67. Nancy Greenberg  
  68. --...初始有72条数据  
  69.  
  70. --或者:  
  71.  
  72. SQL> SELECT e1.FIRST_NAME FROM EMPLOYEES e1,EMPLOYEES e2  
  73.   2  WHERE e1.DEPARTMENT_ID = e2.DEPARTMENT_ID(+)  
  74.   3  and e2.LAST_NAME(+) = 'Hall' 
  75.   4  and e2.LAST_NAME IS NULL;  
  76.  
  77. /*-------10、哪些员工跟William(FIRST_NAME)、Smith(LAST_NAME)做不一样的职位。--------*/  
  78.  
  79. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES  
  80.   2  WHERE JOB_ID <> (SELECT DISTINCT JOB_ID FROM EMPLOYEES  
  81.   3  WHERE FIRST_NAME = 'William' AND LAST_NAME = 'Smith');   
  82.  
  83. FIRST_NAME||''||LAST_NAME  
  84. ----------------------------------------------  
  85. Steven King  
  86. Neena Kochhar  
  87. Lex De Haan  
  88. Alexander Hunold  
  89. ----...初始有77条数据  
  90.  
  91. /*--------11、显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称。---------*/  
  92.  
  93. SQL> SELECT E.FIRST_NAME || ' ' || E.LAST_NAME AS NAME,  
  94.   2  E.COMMISSION_PCT,D.DEPARTMENT_NAME,L.CITY  
  95.   3  FROM HR.EMPLOYEES E,HR.DEPARTMENTS D,HR.LOCATIONS L  
  96.   4  WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID  
  97.   5  AND D.LOCATION_ID = L.LOCATION_ID  
  98.   6  AND E.COMMISSION_PCT IS NOT NULL;  
  99.  
  100. /*--------12、显示Executive部门有哪些职位。---------*/  
  101. SQL> SELECT DISTINCT E.JOB_ID FROM HR.EMPLOYEES E,HR.DEPARTMENTS D  
  102.   2  WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID  
  103.   3  AND D.DEPARTMENT_NAME = 'Executive';  
  104.    
  105. JOB_ID  
  106. ----------  
  107. AD_PRES  
  108. AD_VP  

精彩图集

赞助商链接