La funzione Switch in Access

di Gianfranco Budano

Pubblicato 16 Aprile 2008
Aggiornato 12 Febbraio 2018 20:44

logo PMI+ logo PMI+

La teoria delle basi di dati consiglia l’utilizzo di codifiche numeriche alla registrazione di testo; il motivo risiede nella necessità di risparmiare spazio ed ottimizzare le prestazioni del nostro archivio.

Per questo motivo, di solito, si procede anche alla creazione una tabella di transcodifica, altrimenti detta tabella di correlazione o semplicemente vocabolario; questo tipo di tabelle permettono di tradurre i numeretti registrati nel loro reale significato consentendo a tutti gli utenti di leggere il senso della codifica.

In fase di progettazione, avendo necessità di specificare, per esempio, un colore per ogni record, potremmo aver deciso di abbinare ad ogni colore un numero.

Così il rosso potrebbe essere tradotto in 1, il nero in 0, il bianco in 2 e via dicendo. Se il range di numeri è limitato o se per pigrizia poi non abbiamo redatto la tabella di transcodifica, potremo utilizzare una funzione nativa del nostro applicativo che ci permette comunque di tradurre il codice dei nostri colori: la funzione Switch.

Potremo, infatti, sostituire il campo appartenente al codice del colore in una query con la seguente espressione:
Expr: Switch ( expr1; val1; expr2; val2; ... expr_n; val_n )

Cosa significa? Supponiamo di aver nominato il campo contenente la codifica del colore come [IdColore]; potremo abbinare ad ogni expr_n un valore, in questo modo:
Colore: Switch([IdColore]= 0; "Nero"; [IdColore]=1; "Rosso"; [IdColore]=2; "Bianco")

Sarà come dire se [IdColore] è uguale a 0 scrivi “Nero” e via dicendo.

Si tratta di una funzione da utilizzare quando si ha fretta e manca il tempo per creare una tabella di correlazione, il consiglio, quando si può, è sempre quello di procedere ad una progettazione ordinata del nostro archivio tabelle di transcodifica comprese.