QGIS-Tipp: Keine Beschriftung bei NULL-Werten?

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:

Und? Es klappt, einfach und wirksam. Falls Ihr andere, vielleicht bessere Vorschläge habt, gern in der Kommentaren.

5 Gedanken zu „QGIS-Tipp: Keine Beschriftung bei NULL-Werten?

  1. 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.

  2. 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’)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert