sql >> データベース >  >> RDS >> Oracle

Oracle FORLOOPREVERSEの例

    Oracle PL / SQLでは、FOR LOOP with REVERSE句を使用して、ループの反復を逆の順序で繰り返します。以下は、 REVERSE FOR LOOPの構文と例です。 。

    構文

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

    Oracle FORLOOPREVERSEの例

    1。番号を逆の順序で印刷する

    次の例では、1から5までの数字を逆の順序で出力します。

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

    出力:

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

    2。日付を逆順に印刷

    次の例では、2018年1月1日から2018年1月5日までの日付を逆の順序で印刷します。 FOR LOOPは数値をインクリメントまたはデクリメントするだけなので、ここで少し注意が必要です。最初に日付を数値に変換してから、印刷時に日付に変換し直します。

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

    出力:

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

    関連項目:

    • Oracle TO_CHAR(number)の例
    • Oracle TO_CHAR(date)の例
    • OracleTO_DATE関数の例
    1. 採用システム用のデータベースの設計

    2. sqliteテーブルにタイプテキストとして格納されている列タイプ整数の最大値を取得する方法

    3. SQLServerのテーブルにJSONを挿入する方法

    4. PostgreSQL11の新しいパーティショニング機能を利用する方法