Sql 如何在更新查询时更新有限数量的记录?
我们有更新查询,它更新所有具有相同城市名称和国家的学生记录,但我们只想更新500名具有相同城市名称和国家的学生 这是到目前为止的查询:Sql 如何在更新查询时更新有限数量的记录?,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,我们有更新查询,它更新所有具有相同城市名称和国家的学生记录,但我们只想更新500名具有相同城市名称和国家的学生 这是到目前为止的查询: update student st set st.Fee_Call_Opt_uid = (select t.opt_uid from (select distinct eco.opt_uid , eco.employee_id
update student st
set st.Fee_Call_Opt_uid = (select t.opt_uid
from (select distinct eco.opt_uid
, eco.employee_id
, ct.city_name
, con.country_name
from employee_calling_operator eco
join territory tr
on tr.territory_id = eco.territory_id
join city ct
on ct.territory_id = tr.territory_id
JOIN country con
on con.country_id = ct.country_id) t
where st.city = t.city_name
and st.country = t.country_name
AND st.is_active_flg = 'Y'
and t.opt_uid = :P242_OPT_UID);
请帮帮我。我们使用的是oracle 11g您可以使用rownum。
下面是一个简单的例子:
update test
set col1 = 2
where rownum <=2
and col1 is null
下面是一个演示:
因此,只需添加:
where rownum <= 500
哪个500?最后的第一如果最后500,那么根据哪一个数据?任何有费用呼叫的500都是空的,那么下一个500呢?一旦我有1k条记录并运行了这个程序,它只会先更新500条记录,然后下一步我会执行相同的查询,因为下一步我必须提到rownum<1000@abdulraheemdev . . . 这回答了您在这里提出的问题。如果你有一个不同的问题,把它当作一个新问题来问。我同意@GordonLinoff的观点,你需要一个新问题来应对新的情况。另外,在形成和解释问题时,请再努力一点。因此,您似乎真的想更新所有问题,而不仅仅是随意更新500个问题。但出于某种原因,你似乎认为你需要分500批来做。你需要解释你真正的需求,以及为什么你认为你需要分批完成。@abdulraheemdev我看到你在这里有同样的问题:??