海上月明

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

          oracle集合操作函數(shù)(備忘)

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

          集合操作符專(zhuān)門(mén)用于合并多條select 語(yǔ)句的結(jié)果,包括:UNION, UNION ALL, INTERSECT , MINUS。當(dāng)使用集合操作符時(shí),必須確保不同查詢(xún)的列個(gè)數(shù)和數(shù)據(jù)類(lèi)型匹配。

                  集合操作符具有以下注意事項(xiàng):

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

          1、UNION (無(wú)重并集):當(dāng)執(zhí)行UNION 時(shí),自動(dòng)去掉結(jié)果集中的重復(fù)行,并以第一列的結(jié)果進(jìn)行升序排序。

          2、UNION ALL (有重并集):不去掉重復(fù)行,并且不對(duì)結(jié)果集進(jìn)行排序。

          3、INTERSECT  (交集):取兩個(gè)結(jié)果集的交集,并且以第一列的結(jié)果進(jìn)行升序排列。

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

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

          5、另外,可以使用order by

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

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

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

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 通河县| 姜堰市| 美姑县| 临海市| 葫芦岛市| 偏关县| 鲁甸县| 莫力| 天门市| 福泉市| 哈密市| 安图县| 新昌县| 义马市| 恩平市| 象州县| 巴塘县| 瑞丽市| 吉木萨尔县| 中宁县| 重庆市| 弥渡县| 光山县| 鹤壁市| 漳浦县| 南城县| 饶阳县| 和静县| 耒阳市| 启东市| 土默特左旗| 大姚县| 乌拉特后旗| 容城县| 兰考县| 哈密市| 南京市| 高唐县| 平昌县| 子洲县| 丰镇市|