Oggi mi è capitato di dover estrarre dei dati dal gestioanle aziendale da una tabella con all'interno un indice delle stagionalità dell'articolo. Non avendo una lista di stagioni relative all'indice ho dovuto capire come usare una selec condizionale, ovvero una select che imposta un valore al campo qualora legga un determinato valore da un altro, un po come le istruzioni IF, THEN ed ELSE nei linguaggi di programmazione.

 

Vediamo come usare la funzione DECODE per eseguire una select condizionale.

 

 

 

 

Valido per le versioni Oracle:
Oracle 9i, Oracle 10g, Oracle 11g

 

La sintassi per la funzione DECODE è:

decode( espressione , condizione , risultato [, condizione , risultato]... [, default] )

dove:

espressione è il valore da controllare.

condizione è il valore con cui comparare l'espressione.

risultato è il valore da restituire qualora la condizione si verifichi.

default è un campo opzionale è può essere omesso. Se nessuna condizione è  soddisfatta allora la funzione restituisce il valoire di default.



Proviamo ad usare la funzione DECODE in un caso specifico:

Nell'anagrafica articoli ho una voce STAGINALITA'. Tale voce è impostata con la prima lettera di ogni stagione oppure 1 se l'articolo è per la stagione Autunno/Inverno, 2 se la stagione è Primavera/Estate o null se la stagionalità è continuativa, come ad esempio nel caso della biancheria.

Nel nostro caso la query sarà:

SELECT

codice_articolo AS articolo,
decode(

codice_stagione,

'P',    'Primavera',
'E',    'Estate',
'A',    'Autunno',
'I',    'Inverno',
'1',    'Autunno/Inverno',
'2',    'Primavera/Estate',
'Continuativo'

) stagionalità


FROM anagrafica_articoli;

 

Quattro Racconti


La mia prima opera narrativa, quattro storie brevi, i miei quattro Re, quattro racconti di fantasia, con forti tinte horror, per aiutarvi a non dormire...

  • Se hanno ragione le religioni animiste, ogni oggetto ha una sua identità, una sua anima. E se gli oggetti in questione avessero un'indole maligna?

  • Siamo sicuri di voler affidare il nostro futuro all'intelligenza artificiale? Abbiamo la certezza che un giudizio assolutamente oggettivo e privo di vizi possa guidare la nostra specie verso tempi di pace e prosperità?
    Possiamo fidarci delle cure amorevoli di una fredda macchina??

  • Una vita sfortunata, una serie di rimpianti che negli anni si accumulano, stratificano. Può la disperazione, per quanto intensa e profonda, prendere forma e divorarci dall'interno? Divenire un compagno di vita, tangibile, al nostro fianco mentre camminiamo, sul nostro grembo mentre siamo seduti, come un animale da compagnia??
  • Tra i bisogni primordiali, la necessità di assumere cibo è forse quello che più a contribuito alla nostra evoluzione.
    Quello che più fortemente ci spinge, ci motiva, ci dispera.
    La scarsità di cibo ci ha spinto in ogni angolo del mondo in cerca di terre fertili da coltivare, ha spinto la nostra intelligenza a crescere per poter trovare nuovi modi e tecnologie per rendere i campi più produttivi, ha spinto l'evoluzione delle strutture sociali grazie agli scambi economici tra villaggi e nazioni, ci ha fatto progredire.
    Ma spinge anche i nostri istinti più animaleschi.
    Un animale affamato è una belva sanguinaria e spietata.
    Ed un animale affamato ed intelligente come un essere umano è capace di tutto....
     
     

Quattro Racconti - Storie brevi per non dormire

ISBN Libro:9788892305083

Anno pubblicazione:2023

Formato:11,4x17,2

Foliazione:144

Copertina:morbida

Interno:bn

Genere: Narrativa / Letterature - horror

Distribuzione:

IlMioLibro Self Pubblishing

Amazon

laFeltrinelli

IBS

 

 



Che tradotto con le istruzioni IF-THEN-ELSE è:



IF codice_stagione = "P" THEN
stagionalità := 'Primavera';

ELSIF
codice_stagione = "E" THEN
stagionalità := 'Estate';

ELSIF
codice_stagione = "A" THEN
stagionalità := 'Autunno';

ELSIF codice_stagione = "I" THEN
stagionalità := 'Inverno';

ELSIF codice_stagione = "1" THEN
stagionalità := 'Autunno/Inverno';

ELSIF codice_stagione = "2" THEN
stagionalità := 'Primavera/Estate';


ELSE
stagionalità := 'Continuativo';

END IF;




La funzione DECODE controllerà il valore di ogni indice stagione, uno ad uno.

We use cookies
Attenzione! Questo sito utilizza i cookie tecnici e di terze parti per poter fornire i servizi.