puoi mettere tutti i casi in un unico comando, in questo caso replica WHEN *"stringa"='AA' *THEN '*aa*' le N volte che ti serve tipo così:
CASE WHEN *"stringa"='02' *THEN '200' WHEN *"stringa"='01' *THEN '100' WHEN *"stringa"='03' *T HEN '300' WHEN *"stringa"='04' *THEN '400' ELSE NULL END Il giorno mer 2 mar 2022 alle ore 12:00 Franco Cazzola < franco.cazz...@idroambiente.it> ha scritto: > Grazie Federico per la pronta risposta > > Purtroppo ho circa 30 casi. > > Spero che la lunghezza della istruzione CASE non sia limitata nel numero > di caratteri > > Ci sono altre soluzioni ? > > Franco > > > > *Da:* Federico Gianoli <gianoli.feder...@gmail.com> > *Inviato:* mercoledì 2 marzo 2022 11:20 > *A:* Franco Cazzola <franco.cazz...@idroambiente.it> > *Cc:* qgis-it-user@lists.osgeo.org > *Oggetto:* Re: [QGIS-it-user] Tabella attributi - Calcolatore campi > > > > Ciao, > > > > Dalla documentazione: CASE è usato per valutare una serie di condizioni e > restituisce un risultato per la prima condizione incontrata. Le condizioni > sono valutate sequenzialmente, e se una condizione è vera, la valutazione > si ferma, e il corrispondente risultato è restituito. Se nessuna delle > condizioni è vera, è restituito il valore nella clausola ELSE. > > > > prova con: > > > > CASE WHEN *"stringa"='02' *THEN '200' WHEN *"stringa"='01' *THEN '100' > ELSE NULL END > > > > > > > > Il giorno mer 2 mar 2022 alle ore 11:07 Franco Cazzola < > franco.cazz...@idroambiente.it> ha scritto: > > Buongiorno > > Non riesco a capire perché non funziona la seguente sequenza di operazioni. > > Devo aggiornare il campo unita in base ai valori del campo stringa. > > Esempio: aggiorno il campo unita con valore 200 se il campo stringa=02 > > Uso la seguente sequenza: > > Nella tabella attributi apro il Calcolatore di campi > > *Flag* su Aggiorna campo esistente, scelgo il campo *unita* e nella > espressione inserisco*:* > > *CASE WHEN "unita" IS NULL AND "stringa"='01' THEN '100' END* > > e ottengo quanto sotto riportato > > > > Ora se eseguo la stessa sequenza con > > *CASE WHEN "unita" IS NULL AND "stringa"='02' THEN '200' END* > > Mi aggiorna il campo unita con 200 ma sostituisce anche i precedenti > valori. > > Perché ? > > > > Ho provato a sostituire il campo NULL di unita con un valore qualsiasi e > ripetere la sequenza ma non cambia > > > > Grazie per ogni contributo > > Franco Cazzola > > _______________________________________________ > QGIS-it-user mailing list > QGIS-it-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/qgis-it-user > >
_______________________________________________ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user