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