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

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

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

    Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計(jì)

    留言簿(23)

    積分與排名

    優(yōu)秀學(xué)習(xí)網(wǎng)站

    友情連接

    閱讀排行榜

    評(píng)論排行榜

    Oracle常用查詢(轉(zhuǎn))

    最近有許多學(xué)員問(wèn)了一些面試中的問(wèn)題,總結(jié)起來(lái)看,一是關(guān)于怎樣找出和去除重復(fù)數(shù)據(jù),這在另一個(gè)帖子利已有詳細(xì)介紹。二是關(guān)于找出某一列里最大或最小的前幾個(gè),或是大于或小于某一個(gè)值(最大值或平均值)的數(shù)據(jù)。針對(duì)這種情況,再此做一個(gè)介紹。

    1:找出公司里收入最高的前三名員工:

    SQL> select rownum, last_name, salary
     2  from (select last_name, salary
     3        from s_emp
     4        order by salary desc)
     5  where rownum<=3;

       ROWNUM LAST_NAME                     SALARY
    ---------- ------------------------- ----------
            1 Velasquez                       4750
            2 Ropeburn                        2945
            3 Nguyen                        2897.5


    注意:請(qǐng)大家分析一下一下語(yǔ)句為什么不對(duì):

    SQL> select rownum, last_name, salary
     2  from s_emp
     3  where rownum<=3
     4  order by salary desc;

       ROWNUM LAST_NAME                     SALARY
    ---------- ------------------------- ----------
            1 Velasquez                       4750
            3 Nagayama                        2660
            2 Ngao                            2000

    注:在informix里的查詢用:select first 10 * from table where .....

    2: 找出表中的某一行或某幾行的數(shù)據(jù):

    (1):找出表中第三行數(shù)據(jù):
    用以下方法是不行的,因?yàn)閞ownum后面至可以用<或<=號(hào),不可以用=,>號(hào)和其它的比較符號(hào)。

    SQL> select * from s_emp
     2  where rownum=3;

    no rows selected

    SQL> select * from s_emp
     2  where rownum between 3 and 5;

    no rows selected

    正確的方法如下:

    SQL> l
     1  select last_name, salary
     2  from (select rownum a, b.*
     3        from s_emp b)
     4* where a=3
    SQL> /

    LAST_NAME                     SALARY
    ------------------------- ----------
    Nagayama                        2660

    (2):找出第三行到第五行之間的數(shù)據(jù):
    SQL> l
     1  select last_name, salary
     2  from (select rownum a, b.*
     3        from s_emp b)
     4* where a between 3 and 5
    SQL> /

    LAST_NAME                     SALARY
    ------------------------- ----------
    Nagayama                        2660
    Quick-To-See                    2755
    Ropeburn                        2945

    3:找出那些工資高于他們所在部門(mén)的平均工資的員工。

    (1):第一種方法:
    SQL> select last_name, dept_id, salary
     2  from s_emp a
     3  where salary>(select avg(salary)
     4                from s_emp
     5                where dept_id=a.dept_id);

    LAST_NAME                    DEPT_ID     SALARY
    ------------------------- ---------- ----------
    Velasquez                         50       4750
    Urguhart                          41       2280
    Menchu                            42       2375
    Biri                              43       2090
    Catchpole                         44       2470
    Havel                             45     2483.3
    Nguyen                            34     2897.5
    Maduro                            41       2660
    Nozaki                            42       2280
    Schwartz                          45       2090

    10 rows selected.

    (2):第二種方法:
    SQL> l
     1  select a.last_name, a.salary, a.dept_id, b.avgsal
     2  from s_emp a, (select dept_id, avg(salary) avgsal
     3               from s_emp
     4               group by dept_id) b
     5  where a.dept_id=b.dept_id
     6* and a.salary>b.avgsal
    SQL> /

    LAST_NAME                     SALARY    DEPT_ID     AVGSAL
    ------------------------- ---------- ---------- ----------
    Velasquez                       4750         50     3847.5
    Urguhart                        2280         41     2181.5
    Menchu                          2375         42 2055.16667
    Biri                            2090         43       1710
    Catchpole                       2470         44       1995
    Havel                         2483.3         45     2069.1
    Nguyen                        2897.5         34       2204
    Maduro                          2660         41     2181.5
    Nozaki                          2280         42 2055.16667
    Schwartz                        2090         45     2069.1

    10 rows selected.

    4:找出那些工資高于他們所在部門(mén)的manager的工資的員工。

    SQL> l
     1  select id, last_name, salary, manager_id
     2  from s_emp a
     3  where salary>(select salary
     4                from s_emp
     5*               where id=a.manager_id)
    SQL> /

           ID LAST_NAME                     SALARY MANAGER_ID
    ---------- ------------------------- ---------- ----------
            6 Urguhart                        2280          2
            7 Menchu                          2375          2
            8 Biri                            2090          2
            9 Catchpole                       2470          2
           10 Havel                         2483.3          2
           12 Giljum                          2831          3
           13 Sedeghi                       2878.5          3
           14 Nguyen                        2897.5          3
           15 Dumas                           2755          3
           16 Maduro                          2660          6

    10 rows selected.

    附注:查詢數(shù)據(jù)庫(kù)有那些表:
    informix: select * from systables;
    Oracle:select * from user_all_tables;

    posted on 2007-10-16 16:23 都市淘沙者 閱讀(534) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Oracle/Mysql/Postgres/

    主站蜘蛛池模板: 亚洲欧洲中文日韩久久AV乱码| 国产av无码专区亚洲av桃花庵 | 亚洲伊人成无码综合网 | 欧美好看的免费电影在线观看| 亚洲精品线路一在线观看 | 亚洲中文字幕无码爆乳av中文| 久久黄色免费网站| 国产亚洲AV手机在线观看| 国产亚洲午夜精品| 日韩中文字幕在线免费观看| 亚洲成人一级电影| 久久精品私人影院免费看| 亚洲最大无码中文字幕| 可以免费看黄的网站| 亚洲小说图片视频| 亚洲人成国产精品无码| 国产桃色在线成免费视频| 9久热这里只有精品免费| 国产性爱在线观看亚洲黄色一级片| 国产精品福利片免费看| 337p日本欧洲亚洲大胆裸体艺术 | 日本一道本不卡免费| 久久亚洲精品无码网站| 国产免费私拍一区二区三区| 欧美色欧美亚洲另类二区| 99ri精品国产亚洲| 亚洲成人在线免费观看| 国产色在线|亚洲| 国产免费午夜a无码v视频| 免费A级毛片无码A∨| 久久精品国产亚洲αv忘忧草| 麻豆国产VA免费精品高清在线 | 久久ww精品w免费人成| 亚洲人成综合网站7777香蕉| 免费a级毛片无码av| a级在线免费观看| 亚洲尹人九九大色香蕉网站| 久久久久亚洲AV成人网| 国产成人免费片在线观看| 在线看片免费人成视频福利| ASS亚洲熟妇毛茸茸PICS|