[Gfoss] advanced labeling

Salvea tutti,
sto tentando di creare una label (QGIS Master - w7) con il tool advanced
labeling, concatenando il contenuto di 2 campi testo con la seguente
espressione:

'campo1' || 'campo2'

il risultato è quello sperato solo per le feature che hanno un valore sia per
campo1 che per campo2, mentre se uno dei 2 campi è NULL, la label non viene
visualizzata. Prima di aprire un ticket chiedevo se è semplicemente un problema
di query oppure un piccolo bug.
Saluti a tutti

Salve,

2012/3/4 a.ciali@libero.it <a.ciali@libero.it>:

sto tentando di creare una label (QGIS Master - w7) con il tool advanced
labeling, concatenando il contenuto di 2 campi testo con la seguente
espressione:

'campo1' || 'campo2'

il risultato è quello sperato solo per le feature che hanno un valore sia per
campo1 che per campo2, mentre se uno dei 2 campi è NULL, la label non viene
visualizzata.

E' concettualmente corretto: NULL non e' un valore che si puo' concatenare
in una stringa.

Se vuoi che NULL sia convertito in qualcosa (es. stringa 'null') devi
specificarlo:

CASE WHEN "campo1" IS NULL THEN 'null' ELSE "campo1" END || CASE WHEN
"campo2" IS NULL THEN 'null' ELSE "campo2" END

Saluti.

--
Giuseppe Sucameli

Il 04/03/2012 15:54, Giuseppe Sucameli ha scritto:

E' concettualmente corretto: NULL non e' un valore che si puo' concatenare
in una stringa.

Concettualmente correttissimo, ma di sicuro inaspettato per l'utente.
Meglio chiedere (in un ticket) che venga semplificata la sintassi.
Saluti.

--
Paolo Cavallini
See: http://www.faunalia.it/pc

2012/3/4 Paolo Cavallini <cavallini@faunalia.it>:

Il 04/03/2012 15:54, Giuseppe Sucameli ha scritto:

E' concettualmente corretto: NULL non e' un valore che si puo' concatenare
in una stringa.

Concettualmente correttissimo, ma di sicuro inaspettato per l'utente.
Meglio chiedere (in un ticket) che venga semplificata la sintassi.

e' SQL-like,

al massimo si potrebbe chiedere di modificare la funzione tostring()
affinche' stampi una stringa vuota quando in input ha un valore nullo,
cosi' che si possa usare

tostring( "campo1" ) || tostring( "campo2" )

per il resto mi sembra che ci sia davvero poco da fare.

--
Giuseppe Sucameli