ORACLE中,迁移数据会用到的语句分析(一)

示例1:

SELECT *

    FROM ssfdp_organization t

   WHERE NOT EXISTS (SELECT 1 FROM ssfdp_area a WHERE a.areaid = t.parentid);

是指:查出所有organizationparentidareaareaid不同(不符合),或者不在areaareaid内的。

类似于:

SELECT *

    FROM ssfdp_organization t

   WHERE t.parentid not in (SELECT a.areaid FROM ssfdp_area a );

示例2:删除表中重复的数据:

DELETE FROM drug d

  WHERE  d.lic IN (SELECT x.lic  FROM drug x WHERE 1=1 GROUP BY x.lic HAVING COUNT(*) > 1)

      AND ROWID IN (SELECT MAX(ROWID) FROM drug x WHERE 1= 1  GROUP BY x.lic  HAVING COUNT(*) > 1);

 

DELETE FROM drug t

  WHERE (t.code, t.wcode) IN (SELECT x.code, x.wcode       //这里不止可以有两个,还可以有多个

       FROM drug x WHERE 1=1 GROUP BY x.code, x.wcode HAVING COUNT(*) > 1)

            AND ROWID NOT IN (SELECT MIN(ROWID) FROM drug x WHERE 1=1  GROUP BY x.code, x.wcode  HAVING COUNT(*) > 1);

 

posted @ 2017-07-04 20:07  小码农成长记  阅读(115)  评论(0)    收藏  举报