sql >> Databasteknik >  >> RDS >> Oracle

Oracle FOR LOOP REVERSE Exempel

I Oracle PL/SQL används FOR LOOP med REVERSE-satsdel för att upprepa loopiteration i omvänd ordning. Följande är syntaxen och exemplen för REVERSE FOR LOOP .

Syntax

FOR n IN REVERSE start_number .. end_number LOOP
-- statement to execute in every iteration
END LOOP;

Oracle FOR LOOP REVERSE Exempel

1. Skriv ut nummer i omvänd ordning

I följande exempel kommer den att skriva ut numret från 1 till 5 i omvänd ordning.

SET SERVEROUTPUT ON;
BEGIN
FOR i IN REVERSE 1 .. 5
LOOP
DBMS_OUTPUT.put_line (i);
END LOOP;
END;
/

Utdata:

5
4
3
2
1
PL/SQL procedure successfully completed.

2. Skriv ut datum i omvänd ordning

I följande exempel kommer det att skrivas ut från 1 januari 2018 till 5 januari 2018 i omvänd ordning. Här är den lilla knepiga delen, eftersom FOR LOOP bara ökar eller minskar siffrorna, så först konverterar jag datumet till ett tal och konverterar sedan tillbaka till datumet när jag skriver ut.

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;
/

Utdata:

05/01/2018
04/01/2018
03/01/2018
02/01/2018
01/01/2018
PL/SQL procedure successfully completed.

Se även:

  • Oracle TO_CHAR(nummer) Exempel
  • Oracle TO_CHAR(datum) Exempel
  • Oracle TO_DATE-funktionsexempel
  1. Söka i en Oracle-databas efter tabeller med specifika kolumnnamn?

  2. SQLAlchemy flera främmande nycklar i en mappad klass till samma primärnyckel

  3. Hur man lägger till AD/BC-indikatorn till ett datum i Oracle

  4. Exempel på att konvertera "datum" till "datumtid" i SQL Server (T-SQL)