<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kxbin
    成功留給有準備的人
    posts - 10,  comments - 35,  trackbacks - 0

    本文使用ORACLE自帶的人力資源(HR)實例數(shù)據(jù),本文所用表結構如下:

    HR.EMPLOYEES員工表結構如下:

     

    HR.DEPARTMENTS表結構如下:

     

    HR.REGIONS表結構如下:

     

    SQL> DESC HR.REGIONS;
    Name        Type         Nullable 
    Default Comments 
    ----------- ------------ -------- ------- -------- 
    REGION_ID   NUMBER                                 
    REGION_NAME 
    VARCHAR2(25) Y

     

     


    SQL完成以下問題列表:

     

    復制代碼
    1. 讓SELECT TO_CHAR(SALARY,'L99,999.99'FROM HR.EMPLOYEES WHERE  ROWNUM < 5 輸出結果的貨幣單位是¥和$。

    2. 列出前五位每個員工的名字,工資、漲薪后的的工資(漲幅為8%),以“元”為單位進行四舍五入。

    3. 找出誰是最高領導,將名字按大寫形式顯示。

    4. 找出First_Name 為David,Last_Name為Austin 的直接領導名字。

    5. First_Name 為Alexander,Last_Name為Hunold領導誰。(誰向David 報告)。

    6. 哪些員工的工資高于他直接上司的工資,列出員工的名字和工資,上司的名字和工資。

    7. 哪些員工和Chen(LAST_NAME)同部門。

    8. 哪些員工跟De Haan(LAST_NAME)做一樣職位。

    9. 哪些員工跟Hall(LAST_NAME)不在同一個部門。

    10. 哪些員工跟William(FIRST_NAME)、Smith(LAST_NAME)做不一樣的職位。

    11. 顯示有提成的員工的信息:名字、提成、所在部門名稱、所在地區(qū)的名稱。

    12. 顯示Executive部門有哪些職位。

    13. 整個公司中,最高工資和最低工資相差多少。

    14. 提成大于0 的人數(shù)。

    15. 顯示整個公司的最高工資、最低工資、工資總和、平均工資保留到整數(shù)位。

    16. 整個公司有多少個領導。

    17. 列出在同一部門入職日期晚但工資高于其他同事的員工:名字、工資、入職日期。
    復制代碼

     

     各試題解答如下(歡迎大家指出不同的方法或建議?。?/span>

    復制代碼
    /*--------1、改變NLS_LANG 的值,讓SELECT TO_CHAR(SALARY,'L99,999.99') FROM HR.EMPLOYEES WHERE ROWNUM < 5 輸出結果的貨幣單位是¥和$。---------*/
    -----在沒有設置NLS_LANG的情況下:

    SQL
    > SELECT TO_CHAR(SALARY,'L99,999.99')
       
    2  FROM HR.EMPLOYEES
       
    3  WHERE ROWNUM < 5;

    TO_CHAR(SALARY,
    'L99,999.99')
    ----------------------------
             ¥24,000.00
             ¥
    20,000.00
             ¥
    20,000.00
              ¥
    9,000.00

    SQL
    > SELECT TO_CHAR(SALARY,'$99,999.99')
       
    2  FROM HR.EMPLOYEES
       
    3  WHERE ROWNUM < 5;
     
    TO_CHAR(SALARY,
    '$99,999.99')
    ----------------------------
     $24,000.00
     $
    20,000.00
     $
    20,000.00
      $
    9,000.00

    /*--說明:對于'$99,999.99'格式符:
    L:表示強制顯示當?shù)刎泿欧?br style="margin: 0px; padding: 0px; " />$: 表示顯示美元符號
    9: 表示一個數(shù)字
    0: 表示強制0顯示
    .: 表示一個小數(shù)點
    ,: 表示一個千位分隔符
    --------------
    */

    /*--------2、列出前五位每個員工的名字,工資、漲薪后的的工資(漲幅為8%),以“元”為單位進行四舍五入。---------*/

    SQL
    > SELECT FIRST_NAME,SALARY,ROUND(SALARY * 1.08FROM HR.EMPLOYEES
       
    2  WHERE ROWNUM <=5;
     
    FIRST_NAME               SALARY 
    ROUND(SALARY*1.08)
    -------------------- ---------- ------------------
    Steven                 24000.00              25920
    Neena                  
    20000.00              21600
    Lex                    
    20000.00              21600
    Alexander               
    9000.00               9720
    Bruce                   
    6000.00               6480

    /*--------3、找出誰是最高領導,將名字按大寫形式顯示。---------*/
    SQL
    > SELECT UPPER(FIRST_NAME || ' ' || LAST_NAME) AS NAME
       
    2  FROM HR.EMPLOYEES
       
    3  WHERE MANAGER_ID IS NULL;
     
    NAME
    ----------------------------------------------
    STEVEN KING

    /*--------4、找出David 的直接領導的名字。---------*/
    SQL
    > SELECT UPPER(FIRST_NAME ||' ' || LAST_NAME) AS NAME
       
    2  FROM HR.EMPLOYEES
       
    3  WHERE EMPLOYEE_ID IN(
       
    4  SELECT MANAGER_ID FROM HR.EMPLOYEES
       
    5  WHERE FIRST_NAME = 'David' AND LAST_NAME = 'Austin');
     
    NAME
    ----------------------------------------------
    ALEXANDER HUNOLD

    --或采用以下方法

    SQL
    > SELECT UPPER( EMP1.FIRST_NAME ||' ' ||  EMP1.LAST_NAME) AS NAME
       
    2  FROM HR.EMPLOYEES EMP1,HR.EMPLOYEES EMP2
       
    3  WHERE EMP1.EMPLOYEE_ID = EMP2.MANAGER_ID
       
    4  AND EMP2.FIRST_NAME = 'David' AND EMP2.LAST_NAME =  'Austin'

    NAME
    ----------------------------------------------
    ALEXANDER HUNOLD
     
    /*--------5、First_Name 為Alexander,LAST_NAME為Hunold領導誰。(誰向David 報告)。---------*/
    SQL
    > SELECT UPPER(FIRST_NAME ||' ' || LAST_NAME) AS NAME
       
    2  FROM HR.EMPLOYEES
       
    3  WHERE MANAGER_ID IN(
       
    4  SELECT EMPLOYEE_ID FROM HR.EMPLOYEES
       
    5  WHERE FIRST_NAME = 'Alexander' AND LAST_NAME = 'Hunold');
     
    NAME
    ----------------------------------------------
    BRUCE ERNST
    DAVID AUSTIN
    VALLI PATABALLA
    DIANA LORENTZ

    --或采用以下方法

    SQL
    > SELECT UPPER( EMP1.FIRST_NAME || ' ' ||  EMP1.LAST_NAME) AS NAME
      
    2  FROM HR.EMPLOYEES EMP1,HR.EMPLOYEES EMP2
      
    3  WHERE EMP1.MANAGER_ID = EMP2.EMPLOYEE_ID
      
    4  AND EMP2.FIRST_NAME = 'Alexander' AND EMP2.LAST_NAME =  'Hunold';
     
    NAME
    ----------------------------------------------
    BRUCE ERNST
    DAVID AUSTIN
    VALLI PATABALLA
    DIANA LORENTZ

    /*--------6、哪些員工的工資高于他直接上司的工資,列出員工的名字和工資,上司的名字和工資。---------*/

    SQL
    > SELECT E.FIRST_NAME,E.SALARY,M.FIRST_NAME,M.SALARY
      
    2  FROM EMPLOYEES E,EMPLOYEES M
      
    3  WHERE E.MANAGER_ID = M.EMPLOYEE_ID AND E.SALARY > M.SALARY;
     
    FIRST_NAME               SALARY FIRST_NAME               SALARY
    -------------------- ---------- -------------------- ----------
    Lisa                   11500.00 Gerald                 11000.00
    Ellen                  
    11000.00 Eleni                  10500.00

    --要是只列出員工的名字與工資的話,還可以這樣:

    SQL
    > SELECT E.FIRST_NAME,E.SALARY
      
    2  FROM EMPLOYEES E WHERE E.SALARY >
      
    3 (SELECT M.SALARY FROM EMPLOYEES M 
      
    4  WHERE E.MANAGER_ID = M.EMPLOYEE_ID);
     
    FIRST_NAME               SALARY
    -------------------- ----------
    Lisa                   11500.00
    Ellen                  
    11000.00

    /*--------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  AND LAST_NAME <> 'Chen';
     
    FIRST_NAME
    --------------------
    Nancy
    Daniel
    Ismael
    Jose Manuel
    Luis
    --或者--

    SQL
    > SELECT E1.FIRST_NAME FROM EMPLOYEES E1,EMPLOYEES E2
      
    2  WHERE E1.DEPARTMENT_ID = E2.DEPARTMENT_ID
      
    3  AND E2.LAST_NAME = 'Chen' AND E1.LAST_NAME <> 'Chen';
     
    FIRST_NAME
    --------------------
    Nancy
    Daniel
    Ismael
    Jose Manuel
    Luis

    /*--------8、哪些員工跟De Haan(LAST_NAME)做一樣職位。---------*/
    SQL
    > SELECT FIRST_NAME FROM EMPLOYEES
      
    2  WHERE JOB_ID IN
      
    3  (SELECT JOB_ID FROM EMPLOYEES
      
    4  WHERE LAST_NAME = 'De Haan')
      
    5  AND LAST_NAME <> 'De Haan';
     
    FIRST_NAME
    --------------------
    Neena

    --或者--

    SQL
    > SELECT E1.FIRST_NAME FROM EMPLOYEES E1,EMPLOYEES E2
      
    2  WHERE E1.JOB_ID = E2.JOB_ID 
      
    3  AND E2.LAST_NAME = 'De Haan' AND E1.LAST_NAME <> 'De Haan';
     
    FIRST_NAME
    --------------------
    Neena

    /*--------9、哪些員工跟Hall(LAST_NAME)不在同一個部門。---------*/

    SQL
    > SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES
      
    2  WHERE DEPARTMENT_ID NOT IN(
      
    3  SELECT DEPARTMENT_ID FROM HR.EMPLOYEES
      
    4  WHERE LAST_NAME = 'Hall');
     
    FIRST_NAME
    ||''||LAST_NAME
    ----------------------------------------------
    Steven King
    Neena Kochhar
    Lex De Haan
    Alexander Hunold
    Bruce Ernst
    David Austin
    Valli Pataballa
    Diana Lorentz
    Nancy Greenberg
    --...初始有72條數(shù)據(jù)

    --或者:

    SQL
    > SELECT e1.FIRST_NAME FROM EMPLOYEES e1,EMPLOYEES e2
      
    2  WHERE e1.DEPARTMENT_ID = e2.DEPARTMENT_ID(+)
      
    3  and e2.LAST_NAME(+= 'Hall'
      
    4  and e2.LAST_NAME IS NULL;

    /*-------10、哪些員工跟William(FIRST_NAME)、Smith(LAST_NAME)做不一樣的職位。--------*/

    SQL
    > SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES
      
    2  WHERE JOB_ID <> (SELECT DISTINCT JOB_ID FROM EMPLOYEES
      
    3  WHERE FIRST_NAME = 'William' AND LAST_NAME = 'Smith'); 

    FIRST_NAME
    ||''||LAST_NAME
    ----------------------------------------------
    Steven King
    Neena Kochhar
    Lex De Haan
    Alexander Hunold
    ----...初始有77條數(shù)據(jù)
    復制代碼

     


     

     

    復制代碼
    /*--------11、顯示有提成的員工的信息:名字、提成、所在部門名稱、所在地區(qū)的名稱。---------*/

    SQL
    > SELECT E.FIRST_NAME || ' ' || E.LAST_NAME AS NAME,
      
    2  E.COMMISSION_PCT,D.DEPARTMENT_NAME,L.CITY
      
    3  FROM HR.EMPLOYEES E,HR.DEPARTMENTS D,HR.LOCATIONS L
      
    4  WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID
      
    5  AND D.LOCATION_ID = L.LOCATION_ID
      
    6  AND E.COMMISSION_PCT IS NOT NULL;

    /*--------12、顯示Executive部門有哪些職位。---------*/
    SQL
    > SELECT DISTINCT E.JOB_ID FROM HR.EMPLOYEES E,HR.DEPARTMENTS D
      
    2  WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID
      
    3  AND D.DEPARTMENT_NAME = 'Executive';
     
    JOB_ID
    ----------
    AD_PRES
    AD_VP

    /*--------13、整個公司中,最高工資和最低工資相差多少。---------*/
    SQL
    > SELECT MAX(SALARY) - MIN(SALARY) FROM HR.EMPLOYEES;
     
    MAX(SALARY)-MIN(SALARY)
    -----------------------
                      21900

    /*--------14、提成大于0 的人數(shù)。---------*/
    SQL
    > SELECT COUNT(*AS 提成大小0的人數(shù) FROM HR.EMPLOYEES
      
    2  WHERE COMMISSION_PCT > 0;
     
           提成大小0的人數(shù)
    ---------------
                 35
    --或者

    SQL
    > SELECT COUNT(COMMISSION_PCT) AS 提成大小0的人數(shù)  
      
    2   FROM HR.EMPLOYEES
      
    3   WHERE COMMISSION_PCT > 0;
           提成大小0的人數(shù)
    ---------------
                 35

    /*--------15、顯示整個公司的最高工資、最低工資、工資總和、平均工資保留到整數(shù)位。---------*/

    SQL
    > SELECT MAX(NVL(SALARY,0)) AS 最高工資,
      
    2           MIN(NVL(SALARY,0)) AS 最低工資,
      
    3           SUM(NVL(SALARY,0)) AS 工資總和,
      
    4           ROUND(AVG(NVL(SALARY,0))) AS 平均工資
      
    5  FROM HR.EMPLOYEES;

          最高工資       最低工資       工資總和       平均工資
          
    ----------    ----------      ----------     ---------
          24000          2100           698011         6523

    /*--------16、整個公司有多少個領導。---------*/
    SQL
    > SELECT COUNT(DISTINCT(MANAGER_ID))  FROM HR.EMPLOYEES
       
    2  WHERE MANAGER_ID IS NOT NULL;
     
    COUNT(DISTINCT(MANAGER_ID))
    ---------------------------
                             18

    /*--------17、列出在同一部門入職日期晚但工資高于其他同事的員工:
    名字、工資、入職日期。---------
    */

    SQL
    > SELECT DISTINCT E1.FIRST_NAME || ' ' || E1.LAST_NAME AS 姓名,
      
    2         E1.SALARY AS 工資,E1.HIRE_DATE AS 入職日期
      
    3  FROM HR.EMPLOYEES E1,HR.EMPLOYEES E2
      
    4  WHERE E1.DEPARTMENT_ID = E2.DEPARTMENT_ID
      
    5  AND E1.HIRE_DATE > E2.HIRE_DATE
      
    6  AND E1.SALARY > E2.SALARY
      
    7  ORDER BY 工資 DESC;

    姓名                                                   工資 入職日期
    ---------------------------------------------- ---------- -----------
    John Russell                                     14000.00 1996-10-1
    Karen Partners                                   
    13500.00 1997-1-5
    Alberto Errazuriz                                
    12000.00 1997-3-10
    Nancy Greenberg                                  
    12000.00 1994-8-17
    Lisa Ozer                                        
    11500.00 1997-3-11
    Ellen Abel                                       
    11000.00 1996-5-11
    Gerald Cambrault                                 
    11000.00 1999-10-15
    Clara Vishney                                    
    10500.00 1997-11-11
    Eleni Zlotkey                                    
    10500.00 2000-1-29
    Harrison Bloom                                   
    10000.00 1998-3-23
    Peter Tucker                                     
    10000.00 1997-1-30
    Tayler Fox                                        
    9600.00 1998-1-24
    Danielle Greene                                   
    9500.00 1999-3-19
    David Bernstein                                   
    9500.00 1997-3-24
    Peter Hall                                        
    9000.00 1997-8-20
    Alyssa Hutton                                     
    8800.00 1997-3-19
    Jonathon Taylor                                   
    8600.00 1998-3-24
    Adam Fripp                                        
    8200.00 1997-4-10
    Christopher Olsen                                 
    8000.00 1998-3-30
    Jack Livingston                                   
    8000.00 1998-4-23 
    Matthew Weiss                                     
    8000.00 1996-7-18
    Jose Manuel Urman                                 
    7800.00 1998-3-7
    Nanette Cambrault                                 
    7500.00 1998-12-9
    William Smith                                     
    7400.00 1999-2-23
    Elizabeth Bates                                   
    7300.00 1999-3-24
    Charles Johnson                                   
    7211.00 2000-1-4
    Mattea Marvins                                    
    7200.00 2000-1-24
    Shanta Vollman                                    
    6500.00 1997-10-10
    Kevin Mourgos                                     
    5800.00 1999-11-16
    Nandita Sarchand                                  
    4200.00 1996-1-27
    Alexis Bull                                       
    4100.00 1997-2-20
    Sarah Bell                                        
    4000.00 1996-2-4
    Britney Everett                                   
    3900.00 1997-3-3
    Kelly Chung                                       
    3800.00 1997-6-14
    Jennifer Dilly                                    
    3600.00 1997-8-13
    Julia Dellinger                                   
    3400.00 1998-6-24
    Laura Bissot                                      
    3300.00 1997-8-20
    Julia Nayer                                       
    3200.00 1997-7-16
    Samuel McCain                                     
    3200.00 1998-7-1
    Stephen Stiles                                    
    3200.00 1997-10-26
    Winston Taylor                                    
    3200.00 1998-1-24 
    Alana Walsh                                       
    3100.00 1998-4-24
    Jean Fleaur                                       
    3100.00 1998-2-23
    Anthony Cabrio                                    
    3000.00 1999-2-7
    Kevin Feeney                                      
    3000.00 1998-5-23
    Michael Rogers                                    
    2900.00 1998-8-26
    Shelli Baida                                      
    2900.00 1997-12-24
    Timothy Gates                                     
    2900.00 1998-7-11
    Girard Geoni                                      
    2800.00 2000-2-3
    Mozhe Atkinson                                    
    2800.00 1997-10-30
    Vance Jones                                       
    2800.00 1999-3-17
    Irene Mikkilineni                                 
    2700.00 1998-9-28
    John Seo                                          
    2700.00 1998-2-12
    Donald OConnell                                   
    2600.00 1999-6-21
    Douglas 
    Grant                                     2600.00 2000-1-13
    Randall Matos                                     
    2600.00 1998-3-15
    Martha Sullivan                                   
    2500.00 1999-6-21
    Randall Perkins                                   
    2500.00 1999-12-19
    Ki Gee                                            
    2400.00 1999-12-12
    Hazel Philtanker                                  
    2200.00 2000-2-6
    Steven Markle                                     
    2200.00 2000-3-8
     
    61 rows selected
    posted on 2012-09-18 15:03 kxbin 閱讀(544) 評論(0)  編輯  收藏 所屬分類: ORACLE 、轉發(fā)
    你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經(jīng)常在別人面前批評某人,其實潛意識中是想接近他。

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(5)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    J2EE

    java技術網(wǎng)站

    Linux

    平時常去的網(wǎng)站

    數(shù)據(jù)庫

    電影網(wǎng)站

    網(wǎng)站設計

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一级一片免费视频播放| 亚洲福利视频网站| 免费看一级高潮毛片| 好男人视频社区精品免费| 亚洲国产av美女网站| 国产在线观看麻豆91精品免费 | 亚洲中文字幕无码日韩| 精品成人一区二区三区免费视频| 国产色爽女小说免费看| 亚洲.国产.欧美一区二区三区| 国产美女被遭强高潮免费网站| 亚洲熟女www一区二区三区| 免费爱爱的视频太爽了| 美女无遮挡免费视频网站| 亚洲国产人成精品| 西西人体免费视频| 亚洲视频在线一区二区三区| ww4545四虎永久免费地址| 亚洲欧美日韩综合久久久久| 免费一级做a爰片久久毛片潮喷| 丁香六月婷婷精品免费观看| 亚洲综合久久夜AV | 中文字幕不卡免费视频| 亚洲资源在线观看| 精品国产免费观看久久久| 免费一区二区三区在线视频| 亚洲AV无码久久精品狠狠爱浪潮 | 在线免费观看色片| 偷自拍亚洲视频在线观看| 亚洲最大激情中文字幕| 最近免费中文在线视频| 亚洲JIZZJIZZ妇女| 亚洲av手机在线观看| 中国国产高清免费av片| 亚洲精品影院久久久久久| 可以免费看黄视频的网站| 久久久久久亚洲av无码蜜芽| 亚洲综合av永久无码精品一区二区| 99精品视频在线观看免费播放| 亚洲精品乱码久久久久久蜜桃图片| 国产亚洲精品线观看动态图|