WITH T(menu_id, main_yn, order_no) AS ( SELECT '메뉴1', 'N', 1 FROM dual UNION ALL SELECT '메뉴2', 'N', 2 FROM dual UNION ALL SELECT '메뉴3', 'N', 3 FROM dual ) SELECT menu_id, main_yn, ROW_NUMBER() OVER(ORDER BY order_no) order_no FROM ( SELECT menu_id , CASE WHEN :input = menu_id THEN 'Y' ELSE main_yn END main_yn , CASE WHEN :input = menu_id THEN 0 ELSE order_no END order_no FROM T ) 이런 식으로 해서 나온 결과로 업데이트 해주면 될 것 같긴한데요..