海上月明

          editer by sun
          posts - 162, comments - 51, trackbacks - 0, articles - 8
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          oracle集合操作函數(備忘)

          Posted on 2010-11-02 08:08 pts 閱讀(196) 評論(0)  編輯  收藏

          集合操作符專門用于合并多條select 語句的結果,包括:UNION, UNION ALL, INTERSECT , MINUS。當使用集合操作符時,必須確保不同查詢的列個數和數據類型匹配。

                  集合操作符具有以下注意事項:

          • 集合操作符不適用于LOB、VARRAY和嵌套表列。
          • UNION、INTERSECT、MINUS操作符不使用于 LONG列。
          • 如果選擇列表中包含有表達式或者函數,那么必須為表達式或者函數定義列別名。

          1、UNION (無重并集):當執行UNION 時,自動去掉結果集中的重復行,并以第一列的結果進行升序排序。

          2、UNION ALL (有重并集):不去掉重復行,并且不對結果集進行排序。

          3、INTERSECT  (交集):取兩個結果集的交集,并且以第一列的結果進行升序排列。

                select   id,name,job   from worker 
                INTERSECT
                
          select  empno,ename,job  from emp;

          4、MINUS  (差集):只顯示在第一個集合中存在,在第二個集合中不存在的數據。并且以第一列的結果進行升序排序。

          5、另外,可以使用order by

               order  by 必須放在最后一條select 語句之后,當列名相同時,可以直接用列名排序,如果不同可以用位置排序,也可以使用別名使其相同

              select  id, name  x from new_emp 
              union all  
              select  empno, ename  x from emp order by x;//列名不同時使用別名排序

             select  id, name  ename from new_emp 
             union all  
             select  empno, ename  from emp order by ename;//列名不同時使用別名使其相同后排序

             select  id, name  ename from new_emp 
             union all
             select  empno, ename  from emp ;//合并后列名顯示以前一個表為主。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 合水县| 民县| 商南县| 榆林市| 当涂县| 阿瓦提县| 阿城市| 汕头市| 航空| 晋州市| 海原县| 山西省| 乌鲁木齐市| 阆中市| 平顶山市| 黄骅市| 临湘市| 牡丹江市| SHOW| 惠州市| 鹿泉市| 庐江县| 大名县| 娄底市| 邢台县| 葫芦岛市| 横峰县| 尼玛县| 高尔夫| 灵璧县| 津市市| 永州市| 黔东| 大港区| 基隆市| 日土县| 和静县| 桃江县| 白城市| 比如县| 凤台县|