Login

           | 

Cerca nel sito...

Ricerca personalizzata

Segnala il sito

Segnala a: Mr. Wong Segnala a: Webnews Segnala a: Icio Segnala a: Oneview Segnala a: Kledy.de Social Bookmarking Segnala a:  FAV!T Social Bookmarking Segnala a: Favoriten.de Segnala a: Seekxl Segnala a: Social Bookmark Portal Segnala a: BoniTrust Segnala a: Power-Oldie Segnala a: Bookmarks.cc Segnala a: Newskick Segnala a: Newsider Segnala a: Linksilo Segnala a: Readster Segnala a: Yigg Segnala a: Linkarena Segnala a: Digg Segnala a: Del.icoi.us Segnala a: Reddit Segnala a: Jumptags Segnala a: Upchuckr Segnala a: Simpy Segnala a: StumbleUpon Segnala a: Slashdot Segnala a: Netscape Segnala a: Furl Segnala a: Yahoo Segnala a: Blogmarks Segnala a: Diigo Segnala a: Technorati Segnala a: Newsvine Segnala a: Blinkbits Segnala a: Ma.Gnolia Segnala a: Smarking Segnala a: Netvouz Segnala a: Folkd Segnala a: Spurl Segnala a: Google Segnala a: Blinklist Information
Social Bookmarking
Banner
Hello, unfortunately not all of the site is translated into English, or is poorly translated. I apologize and ask you to help me. Notify errors, send me translations, together we will build a free service certainly helpful to many!
SELECT CONDIZIONALE IN ORACLE PDF Stampa E-mail
Valutazione attuale: / 3
ScarsoOttimo 
Scritto da Massimiliano Pasqualoni   
Mercoledì 01 Aprile 2009 15:09

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;




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.

Ultimo aggiornamento Giovedì 20 Maggio 2010 18:38
 
Altri Articoli :

» Velocizzare il lavoro con i file di rete in esplora risorse di Vista e 7

Non c'è che dire, quando ci si mettono in Microsoft sanno verament fare le cose per bene, (daltronde già il nome la dice lunga:PiccoloMoschio NdA)Sul buon vecchio XP quando in ufficio lavoravo utilizzando l-esplora risorse e puntavo a cartelle...

» Eee Keyboard. Asus reinventa l'Home Computer

Asus lancerà nel prossimo anno, il suo "innovativo" devices Eee Keyboard, già presentata al CeBIT '09.Si tratta di un computer tradizionale integrato in una tastiera e collgabile ad un monito o ad un televisore per poterne sfruttare le...

» Leggere i dischi Linux su Windows

Per chi ha il dual boot Windows/Linux sulla propria macchina e vuole vedere i dischi Linux su Windows, o se si dispone di un disco usb formattato con il filesystem di Linux e lo si vuole collegare ad una macchina Windows occorre installare i drivers...

» Problemi di ascolto Skype su router wireless

Situazione: Internet funziona alla perfezione anzi velocissima con Alice 7M e un Netgear DG834G. HTTP, P2P, servizi H323 e simili (streaming audio-video e voip), FTPproblema: Tutto tranne skype. Nelle telefonate di skype l'interlocutore ci sente...

» Collegarsi ad un dB Oracle con OpenOffice3 Base

Uhmmmm, quasi quasi mi faccio un'applicazione di BI sul gestionale aziendale usando il gestore di database di OpenOffice...Vediamo...Devo collegarmi ad Oracle e mi da errore, dice che non trova la classe del driver, vediamo come risolvere.
RocketTheme Joomla Templates