Usare l'istruzione CASE in MySQL

Mattepuffo's logo
Usare l'istruzione CASE in MySQL

Usare l'istruzione CASE in MySQL

La mia necessità è questa: in una tabella ho un campo "flag" che assume solo valore 0 o 1, dove 0 sta per NON ATTIVO, e 1 sta per ATTIVO.

Quindi, eseguendo questa query, ottengo questo risultato:

SELECT codice, attivato FROM clienti;
 
CODICE    ATTIVATO
1258        1
1456        1
1328        0
1298        1
2238        0

Io ho bisogno di ottere questo risultato:

SELECT codice, attivato FROM clienti;
 
CODICE    ATTIVATO
1258      attivo
1456      attivo
1328      non attivo
1298      attivo
2238      non attivo

Come fare?

La soluzione mi è arrivata da questo thread del forum HTML.it: usare l'istruzione CASE.

Ecco l'esempio:

SELECT cliente_codice,
    CASE cliente_attivato
        WHEN 0 THEN 'NON ATTIVO'
        WHEN 1 THEN 'ATTIVO'
    END
FROM clienti
WHERE cliente_clde = 'CL'

Ve l'ho fatto anche completo di WHERE.

Devo dire che la query risulta più lenta; sarebbe meglio metterla dentro ad una Stored Procedure.

Oppure valutare se è meglio elaborare il valore lato server con linguaggio che state usando.

Enjoy!


Condividi

Commentami!