Trong Oracle PL / SQL, mệnh đề FOR LOOP with REVERSE được sử dụng để lặp lại lặp vòng lặp theo thứ tự ngược lại. Sau đây là cú pháp và ví dụ cho REVERSE FOR LOOP .
Cú pháp
FOR n IN REVERSE start_number .. end_number LOOP -- statement to execute in every iteration END LOOP;
Ví dụ về Oracle FOR LOOP REVERSE
1. In số theo thứ tự ngược lại
Trong ví dụ sau, nó sẽ in số từ 1 đến 5 theo thứ tự ngược lại.
SET SERVEROUTPUT ON; BEGIN FOR i IN REVERSE 1 .. 5 LOOP DBMS_OUTPUT.put_line (i); END LOOP; END; /
Đầu ra:
5 4 3 2 1 PL/SQL procedure successfully completed.
2. Ngày in theo thứ tự ngược lại
Trong ví dụ sau, nó sẽ in ngày từ ngày 1 tháng 1 năm 2018 đến ngày 5 tháng 1 năm 2018 theo thứ tự ngược lại. Đây là một phần nhỏ khó khăn, bởi vì FOR LOOP chỉ tăng hoặc giảm các số, vì vậy trước tiên tôi chuyển đổi ngày thành một số và sau đó chuyển đổi trở lại ngày khi in.
SET SERVEROUTPUT ON; DECLARE start_date DATE := '01jan2018'; end_date DATE := '05jan2018'; BEGIN FOR i IN REVERSE TO_CHAR (start_date, 'yyyymmdd') .. TO_CHAR (end_date, 'yyyymmdd') LOOP DBMS_OUTPUT.put_line (TO_CHAR (TO_DATE (i, 'yyyymmdd'), 'dd/mm/yyyy')); END LOOP; END; /
Đầu ra:
05/01/2018 04/01/2018 03/01/2018 02/01/2018 01/01/2018 PL/SQL procedure successfully completed.
Xem thêm:
- Ví dụ về Oracle TO_CHAR (số)
- Ví dụ về Oracle TO_CHAR (ngày tháng)
- Ví dụ về hàm TO_DATE trong Oracle