<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-295  評論-26  文章-1  trackbacks-0
    select S_10994_1_SYS_MODELTYPE.nextval,a.typeid,'SYS','Mail_Forward','郵件轉發模板','Mail Forward Model' from
    bse_organization a where not exists (select orgtypeid from SYS_MODELTYPE b where b.orgtypeid=a.typeid and modelcode ='Mail_Forward')
    --

    select S_10994_1_SYS_MODELTYPE.nextval,typeid,'SYS','Mail_Forward','郵件轉發模板','Mail Forward Model' from
    bse_organization where typeid not in (
    select orgtypeid from SYS_MODELTYPE where modelcode='Mail_Forward'
    )

    請注意not in 邏輯上不完全等同于not exists,如果你誤用了not in,小心你的程序存在致命的BUG:


    請看下面的例子:
    create table t1 (c1 number,c2 number);
    create table t2 (c1 number,c2 number);

    insert into t1 values (1,2);
    insert into t1 values (1,3);
    insert into t2 values (1,2);
    insert into t2 values (1,null);

    select * from t1 where c2 not in (select c2 from t2);
    no rows found
    select * from t1 where not exists (select 1 from t2 where t1.c2=t2.c2);
    c1 c2
    1 3

    正如所看到的,not in 出現了不期望的結果集,存在邏輯錯誤。如果看一下上述兩個select語句的執行計劃,也會不同。后者使用了hash_aj。
    因此,請盡量不要使用not in(它會調用子查詢),而盡量使用not exists(它會調用關聯子查詢)。如果子查詢中返回的任意一條記錄含有空值,則查詢將不返回任何記錄,正如上面例子所示。
    除非子查詢字段有非空限制,這時可以使用not in ,并且也可以通過提示讓它使用hasg_aj或merge_aj連接。



    大盤預測 國富論
    posted on 2007-10-11 16:51 華夢行 閱讀(183) 評論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 亚洲精品在线视频| 亚洲成av人片天堂网老年人| 成人国产mv免费视频| 免费A级毛片无码A| 亚洲人成人网站色www| 亚洲国产综合人成综合网站00| 亚洲精品伦理熟女国产一区二区| 高清免费久久午夜精品| 少妇太爽了在线观看免费视频| 欧美三级在线电影免费| 亚洲午夜精品一级在线播放放 | 亚洲国产一区二区三区青草影视| 亚洲嫩草影院在线观看| 毛片亚洲AV无码精品国产午夜| 你懂的网址免费国产| 曰曰鲁夜夜免费播放视频| 免费A级毛片无码A| 中文字幕亚洲精品资源网| 最新亚洲人成网站在线观看| 免费毛片在线看不用播放器 | 免费看黄视频网站| 亚洲AV之男人的天堂| 亚洲资源在线视频| 国产大陆亚洲精品国产| 日韩精品内射视频免费观看 | 亚洲人成电影在线天堂| 亚洲国产精品ⅴa在线观看| 中文字幕a∨在线乱码免费看| 青青青国产在线观看免费| 亚洲午夜av影院| 亚洲依依成人亚洲社区| 伊人免费在线观看| 日本a级片免费看| 亚洲视频在线观看地址| 女人裸身j部免费视频无遮挡| 成人免费福利视频| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲日韩一区二区三区| 久久99热精品免费观看牛牛| 四虎永久成人免费| 亚洲国产夜色在线观看|