Exibindo vários campos como rótulos se um campo for nulo no QGIS?


12

Estou com alguns problemas ao tentar mostrar vários campos para um único rótulo no QGIS. No QGIS2.6, tentar exibir rótulos para um recurso que consiste em vários campos resulta em um rótulo vazio se um dos campos for nulo. Por exemplo, na caixa de diálogo de expressão do rótulo:

concat("Temp Site",'\n',"Notes",'\n',"Function")

funcionará normalmente, a menos que um dos campos seja nulo, resultando em nenhum rótulo sendo mostrado. Usando o '||' O operador na caixa de diálogo de expressão também resulta no mesmo comportamento:

"Temp Site" || '\n'  ||  "Notes" || '\n'  ||  "Function"

Existe uma maneira de exibir os rótulos, mesmo que um dos campos seja nulo?

Respostas:


20

Use a função "Coalesce". Coalesce pega o primeiro valor não nulo de seus argumentos. Portanto, essa expressão deve funcionar:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')

1
Você também pode agrupar a nova linha dentro da função de coalescência, se fizer sentido evitar as linhas em branco no meio do rótulo que usei uma expressão comocoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.