
Dieses Problem haben GIS-Nutzer immer mal wieder: Man will einfach nur mit zwei Spalteninhalten beschriften, eigentlich ganz simpel, aber dann enthält eine Beschriftungsspalte NULL-Werte. Und was macht QGIS? Ganz genau: NICHTS, leider. Das ist wenig befriedigend, aus meiner Sicht sogar eher falsch(?). Es gibt aber einen Workaround, man muss beim Beschriften den NULL-.Einträge via Bedingung abfangen. Hier ein Beispiel aus der ganz realen Praxis:
Wir haben zwei Felder “proj_name” (Typ: Text) und “sr_summe” (Typ: Integer), “sr_summe” enthält NULL-Werte, auffüllen mit “0” ist inhaltlich nicht sinnvoll. Beschriftet werden sollen die Polygone mit dem Projektnamen “proj_name”, dann Zeilenumbruch und damit darunter dem Eintrag aus “sr_summe”. Eigentlich würde man nun wie folgt beschriften;
"proj_name" || '\n' || "sr_summe"
Ist “sr_summe” aber gleich NULL wird gar nicht beschriftet und das wollen wir ja nicht, es sollte dann wenigstens der Projektname erscheinen, aber das passiert eben leider nicht. Also fangen wir die NULL-Werte ganz einfach mit folgender Bedingung ab:
CASE WHEN "sr_summe" IS NULL THEN
"proj_name"ELSE "proj_name" || '\n' || "sr_summe"
END
Und? Es klappt, einfach und wirksam. Falls Ihr andere, vielleicht bessere Vorschläge habt, gern in der Kommentaren.
coalesce( “proj_name” || ‘\n’ || “sr_summe” ,”proj_name” )
👍 Danke!
super Tip
Hier noch Input, der bei mir als Mail ankam:
Zum Umgang mit NULL-Werten hast du noch weitere Möglichkeiten. Z. B. mit concat:
concat(‘a’,NULL,’b’) => ‚ab‘ — Der Nullwert wird einfach ignoriert und durch ein Leerzeichen ersetzt.
Oder mit coalesce:
coalesce(“feldname”, ‘nix’) — Wenn “feldname” NULL zurückgeben würde wird statt dessen z. B. ‚nix‘ als Alternativwert verwendet.
Hier noch ein Tipp
Hab ich vor längerer Zeit mal gebraucht
Wird alles schon untereinander beschriftet, wenn Feld Null wird die Zeile ignoriert.
array_to_string(
array_filter(
array( “Feld1” , “Feld2” , “Feld3” , “Feld4”, “Laenge” || ‘ m’ ),
@element IS NOT NULL
),
‘\n’)