IF Statement

IFステートメントは条件を評価し、評価結果に応じて 2 つのステートメントのいずれかを実行します。IFステートメントをネストして、複雑な分岐ロジックを作成することができます。依存するELSE文は、IF文が false と評価された場合にのみ実行されます。

Usage

IF (criteria)
block
[ELSE
block]

Example

BEGIN
DECLARE STRING var1 = 'South America';
IF (var1 = 'North America')
BEGIN
...
END
ELSE
BEGIN
...
END
END
NULL values should be considered in the criteria of an IF statement. IS NULL can be used to detect the presence of a NULL value.

Loop Statement

LOOPステートメントは、結果セットをカーソルするために使用される反復制御コンストラクトです。

Usage

[label :] LOOP ON (<select statement>) AS <cursorname>
block

Syntax

  • ラベルは、このラベルを含むステートメントで使用されている他のラベルと同じであってはなりません。

Example

BEGIN
LOOP ON (SELECT id FROM "SYSADMIN.ScheduleJobs") AS JOB
BEGIN
CALL SYSADMIN.createSchedule(jobId => job.id, type => 'once', intervl => 0, startDelay => 0, enabled => true);
END
END;;

While Statement

WHILEステートメントは、指定された条件が満たされるたびにブロックを繰り返し実行するために使用される反復制御構文です。

Usage

[label :] WHILE <criteria>
block

Syntax

  • ラベルは、このラベルを含むステートメントで使用されている他のラベルと同じであってはなりません。

Example

BEGIN
DECLARE integer i = 0;
WHILE (i < 5) BEGIN
SELECT i; i = i + 1;
END
END ;;

Continue Statement

CONTINUEステートメントは、LOOPまたはWHILEコンストラクトの内部で使用され、ループ内の残りのステートメントをスキップして次のループを続行します。LOOPまたはWHILE文の中で使用する必要があります。

Usage

CONTINUE [label];

Syntax

  • ラベルを指定する場合は、LOOPまたはWHILEを含むステートメントに存在する必要があります;
  • ラベルが指定されていない場合、ステートメントはLOOPまたはWHILEステートメントを含む最も近いものに影響します。

Example

BEGIN
DECLARE integer i = 0;
DECLARE string str = 0;
WHILE (i < 5)
BEGIN
i = i + 1;
IF (i in (2, 3))
CONTINUE;
str = str || i;
END
SELECT str;
END ;;

Break Statement

LOOPまたはWHILE構文の内部でBREAKステートメントを使用すると、ループから抜け出すことができます。LOOPまたはWHILE文の中で使用する必要があります。

Usage

BREAK [label];

Syntax

  • ラベルを指定する場合は、LOOPまたはWHILEを含むステートメントに存在する必要があります;
  • ラベルが指定されていない場合、ステートメントはLOOPまたはWHILEステートメントを含む最も近いものに影響します。

Example

BEGIN
DECLARE integer i = 0;
WHILE (i < 5) BEGIN
IF(i = 3)
BREAK;
SELECT i;
i = i + 1;
END
END ;;

Leave Statement

LEAVEステートメントは、複合、LOOP、またはWHILEコンストラクトの内部で使用され、指定されたレベルに残ります。

Usage

LEAVE label;

Syntax

  • ラベルは、containing Compound Statement、LOOP、またはWHILEステートメント上に存在する必要があります。

Example

BEGIN
DECLARE string str = 0;
LABEL_A: BEGIN
BEGIN
str = 'a';
LEAVE LABEL_A;
END
str = 'b';
END
SELECT str;
END ;;