CASO PostgreSQL

Sommario: in questo tutorial, imparerai come usare l’espressione condizionale del CASO PostgreSQL per formare query condizionali.

L’espressione PostgreSQL CASE è la stessa dell’istruzione IF/ELSE in altri linguaggi di programmazione. Consente di aggiungere la logica if-else alla query per formare una query potente.

Poiché CASE è un’espressione, puoi usarla in qualsiasi punto in cui un’espressione può essere utilizzata, ad esempio,SELECT, WHERE, GROUP BY, e HAVING clausola.

L’espressione CASE ha due forme: forma generale e semplice.

1) Espressione generale del CASO PostgreSQL

Quanto segue illustra la forma generale dell’istruzione CASE :

Code language: SQL (Structured Query Language) (sql)

In questa sintassi, ogni condizione (condition_1, condition_2…) è un’espressione booleana che restituisce true o false.

Quando una condizione viene valutata a false, l’espressione CASEvaluta la condizione successiva dall’alto verso il basso fino a quando non trova una condizione che valuta a true.

Se una condizione viene valutata a true, l’espressione CASE restituisce il risultato corrispondente che segue la condizione. Ad esempio, se condition_2 restituisce true, l’espressione CASE restituisce result_2. Inoltre, interrompe immediatamente la valutazione dell’espressione successiva.

Nel caso in cui tutte le condizioni valutino false, l’espressione CASE restituisce il risultato (else_result) che segue la parola chiave ELSE. Se si omette la clausola ELSE, l’espressione CASErestituisce NULL.

Diamo un’occhiata alla tabella film dal database di esempio.

A) Un esempio di CASO generale

Supponiamo di voler etichettare i film in base alla loro lunghezza in base alla seguente logica:

  • Se la durata è inferiore a 50 minuti, il film è breve.
  • Se la lunghezza è maggiore di 50 minuti e inferiore o uguale a 120 minuti, il film è medio.
  • Se la lunghezza è maggiore di 120 minuti, il film è lungo.

Per applicare questa logica, è possibile utilizzare l’espressione CASE nell’istruzione SELECT come segue:

Code language: PHP (php)

Uscita:

Si noti che abbiamo inserito un alias di colonna duration dopo l’espressione CASE.

B) Utilizzo del CASO con un esempio di funzione aggregata

Supponiamo di voler assegnare segmenti di prezzo ai film con la seguente logica:

  • Se il tasso di noleggio è 0,99, il film è economico.
  • Se il tasso di noleggio è 1,99, il film è di massa.
  • Se il tasso di noleggio è 4.99, il film è premium.

E vuoi conoscere il numero di film che appartengono a economy, mass e premium.

In questo caso, è possibile utilizzare l’espressione CASE per costruire la query come segue:

Code language: SQL (Structured Query Language) (sql)

Il risultato della query è il seguente:

In questo esempio, abbiamo utilizzato l’espressione CASE per restituire 1 o 0 se il tasso di noleggio rientra in ciascun segmento di prezzo. E abbiamo applicato la funzione SUM per calcolare il totale dei film per ogni segmento di prezzo.

2) Simple PostgreSQL CASE expression

PostgreSQL fornisce un’altra forma dell’espressione CASE chiamata simple form come segue:

Code language: SQL (Structured Query Language) (sql)

Il CASE prima valuta il expression e confronta il risultato con ogni valore( value_1, value_2, …) nelle clausole WHEN in sequenza fino a quando non trova la corrispondenza.

Una volta che il risultato di expression è uguale a un valore (value1, value2, ecc.) in una clausola WHEN, CASE restituisce il risultato corrispondente nella clausola THEN.

Se CASE non trova alcuna corrispondenza, restituisce il valore else_result che segue il valore ELSE o NULL se ELSE non è disponibile.

A) Simple PostgreSQL CASE expression example

La seguente istruzione utilizza l’espressione CASE per aggiungere la descrizione della valutazione all’output:

Code language: PHP (php)

In questo esempio, abbiamo usato una semplice espressione CASE per confrontare la valutazione dalla tabella film con alcuni valori letterali come G, PG, NC17, PG-13 e restituire la corrispondente descrizione della valutazione.

B) Utilizzo di una semplice espressione di CASO PostgreSQL con funzione aggregata esempio

La seguente istruzione utilizza l’espressione CASE con la funzione SUM per calcolare il numero di film in ciascuna valutazione:

Code language: PHP (php)

In questo tutorial, hai imparato come usare l’espressione PostgreSQL CASE per formare query complesse.

  • Questo tutorial è stato utile ?
  • SÌNO

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.