Istruzione CASE

L'istruzione CASE utilizza le regole definite nella clausola WHEN per selezionare un blocco di istruzioni da eseguire.

Esistono due formati dell'istruzione CASE: il formato semplice ed il formato ricercato.

SINTASSI

Nel formato semplice, l'espressione principale viene valutata per prima. Ciascuna espressione della clausola WHEN viene valutata fino a quando il risultato è uguale al risultato dell'espressione principale. Quindi, vengono eseguite le istruzioni di tale clausola WHEN. Se non viene individuata alcuna corrispondenza ed è presente la clausola ELSE, vengono eseguite le istruzioni della clausola ELSE. I valori di test non devono essere letterali. L'unico requisito è che l'espressione principale e le espressioni della clausola WHEN risultano in tipi che possono essere confrontati.

Nel formato ricercato, ciascuna espressione della clausola WHEN viene valutata fino a quando una di esse non fornisce il risultato TRUE. Quindi, vengono eseguite le istruzioni di tale clausola WHEN. Se nessuna delle espressioni è TRUE ed è presente la clausola facoltativa ELSE, vengono eseguite le istruzioni della clausola ELSE. Non è necessario che le espressioni in ciascuna clausola CASE siano simili. L'unico requisito è che tutte abbiano come risultato un valore booleano.

Il linguaggio ESQL dispone di un'istruzione CASE e di una funzione CASE (consultare Funzione CASE per i dettagli relativi alla funzione CASE). L'istruzione CASE seleziona un'istruzione da eseguire da un insieme di istruzioni. La funzione CASE seleziona un'espressione da valutare da un insieme di istruzioni e restituisce come proprio valore il valore restituito dall'espressione selezionata.

Esempi

Istruzione CASE semplice:
CASE size
  WHEN minimum + 0 THEN
    SET description = 'small';
  WHEN minimum + 1 THEN
    SET description = 'medium';        
  WHEN minimum + 2 THEN
    SET description = 'large';
    CALL handleLargeObject();
  ELSE
    SET description = 'unknown';
    CALL handleError();
END CASE;
Istruzione CASE ricercata:
CASE
	WHEN i <> 0 THEN
    CALL handleI(i);
  WHEN j > 1 THEN
    CALL handleIZeroAndPositiveJ(j);
  ELSE
    CALL handleAllOtherCases(j);
END CASE;
Concetti correlati
Panoramica di ESQL
Attività correlate
Sviluppo di ESQL
Riferimenti correlati
Diagrammi di sintassi: tipi disponibili
Istruzioni ESQL
Funzione CASE
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak04930_