- IFの評価が真である場合、IFからELSEIFまでの間の文が実行されます。その後、制御はEND IFに続く文に渡されます。
- それぞれのELSEIFに関連した文について、真の値が評価されます。
- ELSEIFに関連した文が真と評価される場合、そのブロック内の文が実行されます。それ以降のELSEIF文節は実行されません。
- IF/END IFブロック内の文がどれも真でない場合、どの文も実行されません。
次の例では、hNoAcctsの値に応じて、ELSEIF句の1つだけが、関連しているDML文を実行するか、または何も実行しません。
IF hNoAccts = 1 THEN INSERT INTO temp_table VALUES (hNoAccts, 'One customer'); ELSEIF hNoAccts = 0 THEN INSERT INTO temp_table VALUES (hNoAccts, 'No customer'); END IF;
次の例では、hNoAcctsの値に応じて、ELSEIF句の1つだけが、関連しているDML文を実行するか、または何も実行しません。
IF hNoAccts = 1 THEN INSERT INTO temp_table VALUES (hNoAccts, 'One customer'); ELSEIF hNoAccts = 0 THEN INSERT INTO temp_table VALUES (hNoAccts, 'No customer'); ELSEIF hNoAccts < 0 THEN INSERT INTO temp_table VALUES (hNoAccts, 'Unknown customer'); END IF;