PostgreSQL se altro

PostgreSQL se altro

In molti linguaggi di programmazione, la dichiarazione IF-ELSE è un modo comune di attuare le condizioni e prendere decisioni data la premessa. Sulla base di una condizione, l'istruzione IF-ELSE decide quale codice eseguire.

PostgreSQL viene fornito anche con la sua versione dell'istruzione IF-ELSE. In questa guida, daremo un'occhiata al SE ALTRO Dichiarazione in PostgreSQL.

Se altro in postgresql

Esistono tre forme di dichiarazioni IF in PostgreSQL:

  • SE
  • Se allora altro
  • Se allora Elsif

IL SE L'istruzione determina quali dichiarazioni eseguire in base al risultato di un'espressione booleana.

La struttura di base del SE La dichiarazione è la seguente:

SE POI
;
FINISCI SE;

In caso di Se allora altro, La struttura è la seguente:

SE POI
;
ALTRO
;
FINISCI SE;

Per Se allora Elsif, La struttura è la seguente:

SE POI
;
..
SE POI
;
ALTRO
;
FINISCI SE;

Prerequisiti

Per eseguire i passaggi dimostrati in questa guida, avrai bisogno dei seguenti componenti:

  • Un sistema Linux correttamente configurato. Ulteriori informazioni sull'installazione di Ubuntu su VirtualBox.
  • PostgreSQL installato e configurato. Scopri l'installazione di PostgreSQL su Ubuntu.

Implementazione di affermazioni se altrimenti

In questa sezione, mostreremo alcuni esempi di implementazione del SE ALTRO dichiarazioni che abbiamo superato finora. La maggior parte degli esempi non richiede alcun set di dati precedente.

Esempio 1 - Usando If

L'esempio presenterà un semplice programma: trovare il più grande di due numeri. Dichiareremo due variabili, assegneremo loro valori, confronteremo i loro valori e output in base al risultato del confronto.

Fare $$
DICHIARARE
var_a smallint: = 65;
var_b smallint: = 99;
INIZIO
Se var_a> var_b quindi avvisa 'Var_a> var_b';
FINISCI SE;
Se var_a < var_b THEN RAISE NOTICE 'var_a < var_b';
FINISCI SE;
Se var_a = var_b quindi sollevare avvisi 'var_a = var_b';
FINISCI SE;
Fine $$;

Qui,

  • Stiamo confrontando il valore di due Piccolo variabili var_a e var_b.
  • Al confronto, stiamo eseguendo un Avviare un avviso dichiarazione per dichiarare il risultato del confronto.

Esempio 2 - Usando se altro

Mentre l'esempio precedente funziona perfettamente, viene fornito con una leggera penalità per le prestazioni. Mette alla prova le condizioni per ogni singolo SE dichiarazione, consumando ulteriore potere di elaborazione.

Ad esempio, se var_a> var_b è VERO, Quindi non è necessario elaborare ulteriormente se le dichiarazioni, giuste? Dobbiamo testare ulteriormente se var_a> var_b restituisce Falso. Lo stesso vale per gli altri livelli di dichiarazioni IF.

Aggiorniamo il codice utilizzando SE ALTRO dichiarazione:

Fare $$
DICHIARARE
var_a smallint: = 65;
var_b smallint: = 99;
INIZIO
Se var_a> var_b quindi avvisa 'Var_a> var_b';
Altro se var_a < var_b THEN RAISE NOTICE 'var_a < var_b';
Else se var_a = var_b quindi sollevare avvisi 'var_a = var_b';
FINISCI SE;
FINISCI SE;
FINISCI SE;
Fine $$;

Qui,

  • Il programma entrerà sempre il primo SE dichiarazione.
  • Il secondo e il terzo SE le dichiarazioni verranno eseguite solo se il precedente SE le dichiarazioni sono Falso.

Esempio 3 - Usando se ELSIF

Possiamo ottimizzare ulteriormente il programma utilizzando Se elsif dichiarazione. Dai un'occhiata al codice:

Fare $$
DICHIARARE
var_a smallint: = 65;
var_b smallint: = 99;
INIZIO
Se var_a> var_b quindi avvisa 'Var_a> var_b';
Elsif var_a < var_b THEN RAISE NOTICE 'var_a < var_b';
ElSif var_a = var_b quindi sollevare avviso 'var_a = var_b';
FINISCI SE;
Fine $$;

Qui, abbiamo scritto solo una singola dichiarazione IF, riducendo così la necessità di ulteriori FINISCI SE dichiarazioni.

Conclusione

In questa guida, abbiamo dimostrato varie forme di SE ALTRO Dichiarazioni trovate in PostgreSQL. Abbiamo anche mostrato il loro utilizzo usando un semplice esempio.

PostgreSQL include anche una tonnellata di funzioni predefinite per query più efficienti. In effetti, possiamo anche costruire query più complesse utilizzando le sotto-domande.

Interessato a saperne di più su PostgreSQL? Dai un'occhiata alla sottocategoria PostgreSQL, abbondante con guide su vari aspetti di PostgreSQL.