ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

ITÈÌÕßÉñ¹êÖ®oracle¼¯ºÏµÄʹÓÃ
2015-07-24 11:00:23 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2´Î
Tags£ºÉñ¹ê oracle ¼¯ºÏ ʹÓÃ

ÿ×é²éѯ¾ùÄܵõ½Æä½á¹û¼¯£¬ÈôÐ轫¶à¸ö²éѯ½á¹ûºÏ²¢³ÉÒ»¸ö½á¹û¼¯£¬Ôò¿ÉÀûÓü¯ºÏÔËËãÀ´ÊµÏÖ¡£

Èç²¢¼¯£¨UNION£©¡¢²¢¼¯ÇÒ²»È¥³ýÖØ¸´ÐУ¨UNOIN ALL£©¡¢½»¼¯£¨INTERSECT£©¡¢²î¼¯£¨MINUS£©¡£

¼¯ºÏÃüÁîµÄÄ¿µÄÊǽ«Á½¸ö£¨º¬ÒÔÉÏ£©SQLÓï¾ä²úÉúµÄ½á¹ûºÏ²¢¡£ÓÉÓÚÐèÒª½«Á½¸ö£¨º¬ÒÔÉÏ£©Êý¾Ý¼¯ºÏ²¢

Òò´Ë×Ö¶ÎÊýÁ¿±ØÐëÏàµÈ£¬ÇÒÀàÐÍÒ²±ØÐë¼æÈÝ¡£Èç¹û×Ö¶ÎÊýÁ¿ÎÞ·¨Ïàͬ£¬¿ÉÒÔ½«²»×㲿·ÖÒÔNULLֵȡ´ú£¬

ÒÔʹÆä×Ö¶ÎÊýÁ¿·ûºÏÒªÇó¡£

н¨Á½ÕÅ±í²¢²åÈëÊý¾Ý½øÐвâÊÔ£º

[sql] view plaincopy
  1. create table test1( id int primary key,
  2. name varchar2(200) );
  3. create table test2( id int primary key,
  4. name varchar2(200) );
  5. insert into test1 values(1,'zhangsan');
  6. insert into test1 values(2,'lisi'); insert into test1 values(3,'wangwu');
  7. insert into test1 values(4,'zhaoliu');
  8. insert into test2 values(3,'wangwu'); insert into test2 values(4,'zhaoliu');
  9. insert into test2 values(5,'sunqi');

    1¡¢²¢¼¯£¨UNION£©

    UNION

    [sql] view plaincopy
    1. select id,name from test1 union
    2. select id,name from test2;

      ²éѯ½á¹ûΪ£º

      \

      UNION ALL

      [sql] view plaincopy
      1. select id,name from test1 union all
      2. select id,name from test2;

        ²éѯ½á¹ûΪ£º

        \

        ÓÉÉÏÊö²âÊÔ¿ÉÖªUNIONÓëUNION ALLÃüÁîµÄ²îÒìÔÚÓÚÊÇ·ñÈ¥³ýÖØ¸´µÄÊý¾ÝÐС£

        UNIONÃüÁî»áÈ¥³ýÖØ¸´µÄÊý¾Ý£¬´ËÃüÁîÔÚ¸ÅÄîÉÏÊÇÏȽ«Êý¾ÝºÏ²¢£¬¶øºóÔÙÖ´ÐÐDISTINCTÃüÁÓÉÊý¾Ý¿âϵͳ×Ô¶¯´¦Àí£©£¬Îª´ïµ½È¥

        ³ýÖØ¸´Êý¾ÝµÄÄ¿µÄ»¹Ðè½øÐÐÅÅÐò¶¯×÷£¬Ê¹ÓÃUNIONÃüÁîǰ£¬ÐèÏÈ˼¿¼È¥³ýÖØ¸´Êý¾ÝµÄ±ØÒªÐÔ£¬ÓÈÆäÊÇÔÚ´¦Àí´óÁ¿Êý¾Ýʱ£¬½«Ôì³É¶î

        ÍâµÄÄڴ棬ÉõÖÁÊÇIOϵͳ×ÊÔ´ÀË·ÑÈôûÓбØÒªÈ¥³ýÖØ¸´Êý¾Ý£¬ÔòÇëʹÓÃUNION ALLÃüÁî¡£

        UNION ÖØ¸´Êý¾ÝÖ»ÏÔʾһ´Î »áɾ³ýÖØ¸´µÄÊý¾Ý£¨Ï൱ÓÚÖ´ÐÐDISTINCT£©

        UNION ALL ËùÓÐÊý¾Ý¶¼ÏÔʾ£¬²»¹ÜÊÇ·ñÖØ¸´ ²»É¾³ýÖØ¸´µÄÊý¾Ý£¬ÓµÓнϼѵÄÖ´ÐÐЧÂÊ

        2¡¢½»¼¯£¨INTERSECT£©

        OracleÌṩµÄINTERSECTÃüÁîºÍUNIONÀàËÆ£¬Ò²ÊǶÔÁ½¸öSQLÓï¾ä²úÉúµÄ½á¹û×ö´¦Àí¡£²î±ðÔÚÓÚUNIONÃüÁîÔÚ¸ÅÄîÉÏÊÇÒ»¸öOR²Ù

        ×÷£¬Êý¾ÝÖ»Òª´æÔÚÈκÎÒ»¸öÊý¾Ý¼¯£¬¾Í»á±»Ñ¡³ö£¨²¢¼¯£©¡£¶øINTERSECTÔÚ¸ÅÄîÉÏÊÇAND²Ù×÷£¬Ö»ÓÐͬʱ´æÔÚÓÚ¸öÊý¾Ý¼¯ÖеÄÊý¾Ý

        ²Å»á±»Ñ¡³ö£¨½»¼¯£©¡£

        INTERSECT

        [sql] view plaincopy
        1. select id,name from test1 intersect
        2. select id,name from test2;

          ²éѯ½á¹ûΪ£º

          \

          3¡¢²î¼¯£¨MINUS£©

          SQL ServerÒÔÉϰ汾ÌṩÁËEXCEPTÃüÁ´ËÃüÁîÓëOracleµÄMINUSÃüÁîÀàËÆ£¬½«µÚÒ»¸öÊý¾Ý¼¯ÓëµÚ¶þ¸öÊý¾Ý¼¯×ö±Ê¼Ç£¬

          Ö»ÓÐÔÚµÚÒ»¸öÊý¾Ý¼¯ÖÐÓС¢µ«²»ÔÚµÚ¶þ¸öÊý¾Ý¼¯ÖгöÏÖµÄÖµ²Å»á±»´«»Ø£¨Ïà¼õ£©¡£

          MINUS

          [sql] view plaincopy
          1. select id,name from test1 minus
          2. select id,name from test2;

            ²éѯ½á¹ûΪ£º

            \

            ¼¯ºÏÔËËãÊǶÔÁ½¸öÊý¾Ý¼¯½øÐÐÔËË㣬¶ÔÓÚÒÔÉÏ4ÖÖÀàÐ͵ļ¯ºÏÃüÁʹÓÃʱ¾ùÐè×¢ÒâÒ»ÏÂÏÞÖÆÌõ¼þ£º

            ×Ö¶ÎÊýÁ¿ÐèÒ»ÖÂ

            ×Ö¶ÎÀàÐÍÐè¼æÈÝ

            ×Ö¶ÎÃû³ÆÒÔµÚÒ»¸öÊý¾Ý¼¯ÎªÒÀ¾Ý

¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºORA-27054´íÎó´¦Àí ÏÂһƪ£ºwindowsϵÄoracleʵÀýÆô¶¯Ê±±¨´í..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Spring Boot Java£º (2025-12-26 16:20:19)
¡¤Spring Boot¤ÇHello (2025-12-26 16:20:15)
¡¤Spring ¤Î»ù±¾¤«¤éŒ (2025-12-26 16:20:12)
¡¤C++Ä£°å (template) (2025-12-26 15:49:49)
¡¤C ÓïÑÔÖÐÄ£°åµÄ¼¸ÖÖ (2025-12-26 15:49:47)