海上月明

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

          oracle集合操作函數(備忘)

          Posted on 2010-11-02 08:08 pts 閱讀(198) 評論(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 ;//合并后列名顯示以前一個表為主。


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


          網站導航:
           
          主站蜘蛛池模板: 玉门市| 铅山县| 金溪县| 绩溪县| 镇坪县| 临桂县| 麦盖提县| 原平市| 丰城市| 郴州市| 信丰县| 车险| 阿巴嘎旗| 封丘县| 原阳县| 亳州市| 无锡市| 涞水县| 哈尔滨市| 桓台县| 右玉县| 黑龙江省| 余姚市| 汪清县| 马关县| 利川市| 贵德县| 夏邑县| 河西区| 永顺县| 青铜峡市| 铜鼓县| 理塘县| 温泉县| 建湖县| 舒城县| 巴东县| 璧山县| 旺苍县| 红河县| 那曲县|