有没有办法在PL / SQL中从特定行开始循环遍历表中的一部分行?
例如,我有一个20行的表,我想处理从第4行开始的所有行。在我完成一次迭代之后,我再次对表进行重新排序。
答案 0 :(得分:1)
Oracle中没有这样的功能。但是有游标。它们非常棒,请查看here或here以获取更多详细信息。
如果您正在谈论PL / SQL,您可以轻松实现它。您需要担心的第一件事是您的查询的ORDER BY子句 - 如果您想要处理第4行中的行,您应该知道哪个顺序是正确的。
第二件事是如何计算前四行。你可以通过循环中的一些i计数器变量,或者直接在查询中进行(可能更快)。
下面是一些例子:
DECLARE
CURSOR employees_in_10_cur
IS
SELECT
rownum,
*
FROM
employees
WHERE
department_id = 10
ORDER BY
employee_id
;
BEGIN
FOR employee_rec IN employees_in_10_cur
LOOP
IF employee_rec.rownum >= 4 THEN
-- Do something here
DBMS_OUTPUT.put_line (employee_rec.employee_id);
END IF;
END LOOP;
END;
希望有所帮助。