如果一个字段在QGIS中为空,则显示多个字段作为标签?


13

我在尝试为QGIS中的单个标签显示多个字段时遇到一些问题。在QGIS2.6中,如果其中一个字段为null,则尝试显示由多个字段组成的要素的标签会导致标签为空。因此,例如,在标签表达式对话框中:

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

除非其中一个字段为null,否则它将正常运行,否则将不会显示任何标签。使用“ ||” 运算符而不是表达式对话框中的结果也相同:

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

是否可以显示标签,即使其中一个字段为空?

Answers:


20

使用“ Coalesce”功能。Coalesce从其参数中获取第一个非空值。因此,此表达式应该起作用:

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

1
如果可以避免在标签中间使用空行,也可以将新行换行到合并函数中,我使用了这样的表达式coalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.