Ich habe zwei Spalten in meiner QGIS-Attributtabelle. Die erste Spalte enthält Werte, die nicht in der zweiten Spalte enthalten sind, und umgekehrt. Ich möchte ein neues Feld hinzufügen, das sowohl die Werte aus der ersten als auch aus der zweiten Spalte enthält. Ich dachte, es könnte so einfach sein wie "Wert 1 + Wert 2), aber das gibt mir nur Null- Ergebnisse. Alle Werte sind Zeichenfolgen.
Value 1| Value 2 | New Column
-------------------------
Bacon | | Bacon
Eggs | | Eggs
| Cheese | Cheese
| Ham | Ham
qgis
attribute-table
Dunuts
quelle
quelle
Antworten:
Viele Operatoren und Funktionen in SQL (und damit Ausdrücke) geben zurück,
NULL
wenn einer der Parameter warNULL
Die folgenden Beispiele zeigen das Verhalten verschiedener Operatoren auf einer Ebene mit den Spalten
A
undB
."A" + "B"
NULL + 'text'
➝NULL
'a' + 'b'
➝'ab'
"A" || "B"
NULL || 'text'
➝NULL
'a' || 'b'
➝'ab'
CONCAT("A", "B")
CONCAT(NULL, 'text')
➝'text'
CONCAT('a', 'b')
➝'ab'
COALESCE("A", "B")
COALESCE(NULL, 'text')
➝'text'
COALESCE('a', 'b')
➝'a'
COALESCE('a', NULL)
➝'a'
COALESCE(NULL, NULL, 'Other')
➝'Other'
In Ihrem Fall möchten Sie mit einem
CONCAT
oderCOALESCE
abhängig vom erwarteten Verhalten mit mehreren / keinen Werten arbeiten.quelle
Sie können den Feldrechner verwenden und die folgenden Schritte ausführen:
1- Neues Feld erstellen (String)
2- Verwenden Sie die "Coalesce" -Funktion
Die Colaesce-Funktion gibt die erste nicht NULL zurück
quelle
Wählen Sie die Ebene im Ebenenbedienfeld aus, öffnen Sie die Python-Konsole und führen Sie dieses Snippet aus:
quelle
Sie können auch den Feldrechner verwenden, ein neues Feld hinzufügen und ihm Folgendes geben
quelle