UPDATE stg1_hfhs_enr_emp_roster_2005 a
SET
a.business_unit =
(SELECT business_unit
FROM (SELECT business_unit
FROM stg1_hfhs_enr_emp_ros_2005_tmp
ORDER BY ... -- some clause that puts the most relevant business_unit as first
)
WHERE id = a.id
AND ROWNUM < 2);
К сожалению, у меня нет доступа к Oracle 8, чтобы проверить это.
Для ЗАКАЗА и ограничения количества строк требуется два слоя встроенных представлений. Кроме того, вы не можете напрямую ссылаться на таблицу «a» внутри самого глубокого встроенного представления (некоторое глупое ограничение Oracle), так что это необходимо в среднем представлении.