ORACLE中,迁移数据会用到的语句分析(一)
示例1:
SELECT *
FROM ssfdp_organization t
WHERE NOT EXISTS (SELECT 1 FROM ssfdp_area a WHERE a.areaid = t.parentid);
是指:查出所有organization的parentid与area的areaid不同(不符合),或者不在area的areaid内的。
类似于:
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);

浙公网安备 33010602011771号