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

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

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

    waterye

    Oracle高級查詢

    使用Oracle特有的查詢語法, 可以達到事半功倍的效果

    1. 樹查詢
    create table tree (
        id 
    number(10not null primary key,
        name 
    varchar2(100not null,
        super 
    number(10not null                // 0 is root
    );
    -- 從子到父
    select * from tree start with id = ? connect by id = prior super 
    -- 從父到子
    select * from tree start with id = ? connect by prior id = suepr
    -- 整棵樹
    select * from tree start with super = 0 connect by prior id = suepr

    2. 分頁查詢
    select * from ( 
        
    select my_table.*, rownum  my_rownum from ( 
            
    select name, birthday from employee order by birthday
        ) my_table 
    where rownum < 120 
    where my_rownum >= 100;

    3. 累加查詢, 以scott.emp為例
    select empno, ename, sal, sum(sal) over(order by empno) result from emp;
     
         EMPNO ENAME             SAL     RESULT
    ---------- ---------- ---------- ----------
          7369 SMITH             800        800
          
    7499 ALLEN            1600       2400
          
    7521 WARD             1250       3650
          
    7566 JONES            2975       6625
          
    7654 MARTIN           1250       7875
          
    7698 BLAKE            2850      10725
          
    7782 CLARK            2450      13175
          
    7788 SCOTT            3000      16175
          
    7839 KING             5000      21175
          
    7844 TURNER           1500      22675
          
    7876 ADAMS            1100      23775
          
    7900 JAMES             950      24725
          
    7902 FORD             3000      27725
          
    7934 MILLER           1300      29025

    4. 高級group by
    select decode(grouping(deptno),1,'all deptno',deptno) deptno,
           decode(
    grouping(job),1,'all job',job) job,
           
    sum(sal) sal
    from emp 
    group by ROLLUP(deptno,job);
    DEPTNO                                   JOB              SAL
    ---------------------------------------- --------- ----------
    10                                       CLERK           1300
    10                                       MANAGER         2450
    10                                       PRESIDENT       5000
    10                                       all job         8750
    20                                       CLERK           1900
    20                                       ANALYST         6000
    20                                       MANAGER         2975
    20                                       all job        10875
    30                                       CLERK            950
    30                                       MANAGER         2850
    30                                       SALESMAN        5600
    30                                       all job         9400
    all deptno                               all job        29025

    5. use hint
    當多表連接很慢時,用ORDERED提示試試,也許會快很多
    SELECT /*+ ORDERED */* 
      
    FROM a, b, c, d 
     
    WHERE  

    posted on 2005-08-20 10:56 waterye 閱讀(4785) 評論(9)  編輯  收藏 所屬分類: oracle

    Feedback

    # re: Oracle高級查詢 2005-08-25 12:39 江南白衣@ITO

    嚴重懷疑3,4有沒有人敢用阿。  回復  更多評論   

    # re: Oracle高級查詢 2005-08-25 12:49 Water Ye

    3, 財務計算很有用啊

    當年進ITO就靠它啊  回復  更多評論   

    # re: Oracle高級查詢 2005-08-25 12:53 David@ITO

    要繼續(xù)推廣,來個實際項目說說:)  回復  更多評論   

    # re: Oracle高級查詢 2005-08-25 12:55 Water Ye@ITO

    3, Cayrix已在項目中應用  回復  更多評論   

    # re: Oracle高級查詢 2006-04-20 10:06 kelo

    我就用到了,謝謝  回復  更多評論   

    # re: Oracle高級查詢 2006-06-13 15:55 kelo

    樹查詢有用  回復  更多評論   

    # re: Oracle高級查詢 2007-11-05 20:47 Vale_Jones

    請教高手在SQL中語句為select * from table1 where id = @txtId
    轉換成Oracle 的語句應該是這樣的,我是剛學oracle很多不懂的,特前來向前輩們請教。  回復  更多評論   

    # re: Oracle高級查詢 2007-11-05 22:45 water ye

    查一下oracle pl/sql reference就可以了,今年做wap site的工作,沒有機會oracle, online db基本上都是mysql  回復  更多評論   

    # re: Oracle高級查詢 2007-11-06 09:15 Vale_Jones

    菜鳥求救高手:在Oracle里接受用房輸入信息為條件的查詢語句該怎樣寫啊!在SQLserver為正常語句:select * from table1 where ID = @txtID
    txtID為用戶界面文本框。在Oracle中如何改寫才會不報錯呢?謝謝指教!  回復  更多評論   

    主站蜘蛛池模板: 亚洲精品免费在线观看| 日韩精品视频免费观看| 亚洲AV无码一区二区三区在线| 欧美a级在线现免费观看| 羞羞漫画登录页面免费| 久久亚洲高清观看| 国语成本人片免费av无码| 亚洲高清免费视频| 亚洲av片不卡无码久久| 亚洲av午夜精品一区二区三区| 久久国产乱子伦精品免费强| 亚洲欧美日韩久久精品| 亚洲国产综合无码一区| 成人免费男女视频网站慢动作| 久久国产福利免费| 亚洲综合无码无在线观看| 亚洲国产精品VA在线观看麻豆| 日本免费电影一区| 亚洲视频在线观看免费| 黄床大片30分钟免费看| 亚洲人成在线中文字幕| 亚洲日韩精品无码专区网址| 午夜一级毛片免费视频| 99久久免费精品视频| 一级特黄a免费大片| 456亚洲人成在线播放网站| 国产成人亚洲综合无码精品| 日韩在线天堂免费观看| 1000部拍拍拍18勿入免费视频下载 | 日韩精品亚洲专区在线影视| 亚洲AV日韩AV高潮无码专区| 又黄又爽一线毛片免费观看 | 最近中文字幕完整免费视频ww | 四虎www免费人成| 99精品一区二区免费视频| 一级毛片免费一级直接观看| 亚洲国产系列一区二区三区| 亚洲AV日韩AV高潮无码专区| 亚洲午夜无码久久久久| 亚洲第一视频在线观看免费| 在线免费观看毛片网站|