<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

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

    # 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里接受用房輸入信息為條件的查詢語句該怎樣寫?。≡赟QLserver為正常語句:select * from table1 where ID = @txtID
    txtID為用戶界面文本框。在Oracle中如何改寫才會不報錯呢?謝謝指教!  回復  更多評論   

    主站蜘蛛池模板: yy6080久久亚洲精品| 免费国产黄网站在线观看| 成人五级毛片免费播放| 亚洲a级片在线观看| 午夜福利不卡片在线播放免费| 午夜亚洲www湿好大| h视频在线免费看| 亚洲一区二区三区久久| 妞干网免费观看视频| 亚洲精品动漫免费二区| 免费看国产一级片| 4hu四虎免费影院www| 亚洲国产精品无码专区影院| 久久久久免费精品国产小说| 亚洲国产综合第一精品小说| 成人毛片18岁女人毛片免费看| 亚洲成AV人片高潮喷水| 国产成人精品久久亚洲| 久久久精品免费国产四虎| 亚洲欧洲日韩综合| 国产成人涩涩涩视频在线观看免费 | 四虎影视久久久免费| 老司机亚洲精品影视www| 免费看男人j放进女人j免费看| 亚洲精品亚洲人成在线观看麻豆| 免费a级毛片高清视频不卡 | 亚洲国产精品综合久久20| 成年女人免费视频播放体验区| 黄色网页免费观看| 亚洲国产精品久久66| 成人黄动漫画免费网站视频| h视频在线观看免费| 亚洲欧洲在线播放| 五月天婷亚洲天综合网精品偷| 国产无遮挡无码视频免费软件| 中文字幕乱码亚洲无线三区| 全亚洲最新黄色特级网站| 99视频有精品视频免费观看| 日韩欧美亚洲中文乱码| 亚洲国产一区二区三区青草影视| 日本免费高清一本视频|