Dichiarazione del caso Oracle

Dichiarazione del caso Oracle
L'istruzione Case è una potente espressione condizionale in Oracle che consente all'utente di eseguire diverse logiche condizionali. L'istruzione Case può migliorare le prestazioni delle query e risparmiare tempo definendo più condizioni in una query anziché in più query condizionali. Con l'aiuto di un'istruzione Case, l'utente può definire più condizioni e le loro dichiarazioni corrispondenti da eseguire, quando la condizione è vera. Se nessuna delle condizioni dichiarate è vera, verrà invocato il blocco predefinito.

Questa guida spiegherà:

  • Come utilizzare una semplice dichiarazione di case in Oracle?
  • Come utilizzare la dichiarazione del caso Oracle in una clausola dove?
  • Come utilizzare l'istruzione Oracle Case in una funzione aggregata?

Come utilizzare una semplice dichiarazione di case in Oracle?

Per usare un semplice CASO dichiarazione in Oracle, a "QUANDO"La clausola può essere utilizzata per una condizione con un"POI"Clausola per un output corrispondente. L'output predefinito può essere aggiunto utilizzando "ALTRO"Clausola. Nel caso di più condizioni, multipli "QUANDO" E "POI"Le clausole possono essere utilizzate. Passiamo alla sintassi dell'istruzione del caso:

CASO
Quando [condanna] allora [risultato]
Quando [condizione] quindi [risultato]
..
Quando [condizione] quindi [risultato]
Else [default-result]
FINE

Esempio 1: Dichiarazione del caso semplice

Vediamo un esempio di una semplice dichiarazione del caso controllando il "statoColonna "nella"ordini" tavolo:

Seleziona ordine_id, customer_id, ordine_date,
CASO
Quando status = 'spedito' quindi ' -> ordina spedito'
Quando status = 'in sospeso' allora ' -> ordine in sospeso'
Else ' -> ordine cancellato'
Termina come stato
Dagli ordini;

Produzione

L'output descrive che il risultato è stato stampato secondo la dichiarazione del caso fornita.

Esempio 2: Dichiarazione del caso usando la sintassi stenografia

Una dichiarazione del caso può essere scritta anche in sintassi stenografia che omette l'espressione dopo la parola chiave del caso e utilizza direttamente il nome della colonna, E.G., "stato":

Seleziona ordine_id, customer_id, ordine_date,
Stato del caso
Quando "spedito" allora " -> ordina spedito"
Quando "in sospeso" allora " -> ordina in sospeso"
Else ' -> ordine cancellato'
Termina come stato
Dagli ordini;

Produzione

L'output ha visualizzato lo stesso risultato dell'esempio sopra.

Come utilizzare un'istruzione Case Oracle in una clausola dove?

IL "DOVE"La clausola viene utilizzata per filtrare i dati. L'istruzione Case Oracle può essere utilizzata nel "DOVE"Clausola per il filtro condizionale dei dati. L'esempio è riportato di seguito:

Seleziona Product_id, Warehouse_id, quantità
Dagli inventari
DOVE
CASO
Quando quantità> 200 allora 1
Altrimenti 0
Fine = 1;

Nel codice sopra, il "Inventari"I dati della tabella vengono filtrati in base alla condizione specificata come quantità valore maggiore di 200.

Produzione

L'output descrive che le righe con una quantità maggiore di 200 sono state stampate.

Come utilizzare un'istruzione Oracle Case in una funzione aggregata?

IL funzioni aggregate vengono utilizzati per calcolare l'insieme di valori e recuperare un singolo valore. L'istruzione del caso Oracle può essere utilizzata in una funzione aggregata per eseguire il calcolo condizionale sull'insieme dei valori. L'esempio è riportato di seguito:

Seleziona order_id, item_id, Product_id, Unit_price,
Somma (caso
Quando unità_price> = 470 quindi la quantità
Altrimenti 0
Fine) come quantità
Da order_items
Gruppo di Order_id, Item_id, Product_id, Unit_Price;

Nell'esempio sopra, la condizione è stata applicata sul "PREZZO UNITARIOColonna "di"Order_items" tavolo.

Produzione

L'output lo descrive se il PREZZO UNITARIO il valore è stato maggiore di 470 quindi il valore di quantità è stato dimostrato altrimenti ha mostrato zero (0).

Conclusione

L'istruzione Case Oracle viene utilizzata per definire più condizioni insieme alla loro particolare affermazione da eseguire. Quando una condizione è vera, le dichiarazioni associate a tale condizione verranno eseguite, altrimenti il ​​blocco predefinito verrà eseguito. Può anche essere usato in "DOVE"Clausola per filtrare condizionalmente i dati e nelle funzioni aggregate per eseguire calcoli condizionali sull'insieme dei valori. La guida ha fornito una spiegazione dettagliata con esempi di come utilizzare le dichiarazioni del caso Oracle.