【发布时间】:2018-06-26 12:36:38
【问题描述】:
我有以下查询,我正在使用 oracle 存储过程。查询运行良好,但我想在此查询中添加条件,以便如果行值与 name,e_id,c_date,p_check 的组合已经存在,则不要插入此值。
INSERT INTO M_LOG(NAME, E_ID, C_DATE, STATUS, P_CHECK)
Select MAX(ML.NAME), ML.E_ID, C_DATE, 1, 'M Step_1' from F_LOG ML,DIR_LOG MD
WHERE ML.NAME != MD.NAME and ML.E_ID != MD.E_ID and MD.C_DATE = LAST_DAY(to_date(sysdate,'YYYYMMDD'))
GROUP BY ML.E_ID,C_DATE;
【问题讨论】:
-
使用合并语句
-
同意
merge更灵活,但您也可以考虑在现有的insert中添加not exists (select ...)。
标签: sql oracle stored-procedures duplicates sql-insert