需要更新“p_outbound_comments”表
这样“创建者”列就会使用p_shipping_view中相应的“car_move_id”填充自己,其中or_um匹配。
我正在使用此查询:
UPDATE p_outbound_comments t1
SET (creator) = (SELECT t2.car_move_id
FROM p_shipping_view t2
WHERE t1.ordnum = t2.ordnum)
WHERE EXISTS(SELECT 1
FROM p_shipping_view t2
WHERE t1.ordnum = t2.ordnum)
问题是SET的内部查询返回匹配的所有ord nums的car_move_id。因此,我得到一个oracle错误,因为内部查询返回多个结果。
如何使用p_shipping_view中的“car_move_id”更新每行“创建者”列succsessfuly,其中ordnum的匹配一次性完成?
答案 0 :(得分:0)
如果子查询返回相同的值但是多个记录,则基本上可以在子查询中使用以下其中一个
选择不同的t2.car_mive_ID 选择max(t2.car_move_ID) 选择min(t2.car_movr_ID) 选择avg(t2.car_move_ID)
答案 1 :(得分:0)
我认为MERGE
适用于此任务:
MERGE INTO p_outbound_comments D
USING (
SELECT car_move_id, ordnum
FROM p_shipping_view
WHERE car_move_id IS NOT NULL
) S ON (D.ordnum = S.ordnum)
WHEN MATCHED THEN UPDATE
SET D.creator = S.car_move_id
WHERE D.creator IS NULL