Wie verwende ich die Funktion zum Ersetzen von Zeichenfolgen im Feldrechner?

12

Innerhalb einer Attributtabelle versuche ich, eine Zeichenfolge mit der Funktion 'Ersetzen' durch eine andere zu ersetzen. Als Beispiel gibt es eine Reihe von Features, deren Feld 'NAME' die Zeichenfolge '(B)' enthält, und ich möchte diese durch das Wort 'County' ersetzen. Ich aktiviere das Kontrollkästchen "Vorhandenes Feld aktualisieren" und verwende den folgenden Ausdruck

 replace( '(B)','(B)','County')

Das Endergebnis ist, dass das Feld 'NAME' für jedes Feature durch 'County' ersetzt wird, unabhängig davon, ob das Feld 'NAME' ursprünglich die Zeichenfolge '(B)' enthielt oder nicht. Jede Hilfe wäre dankbar.

GrahamD
quelle
GrahamD, danke für den Beitrag und underdark, danke für die Antwort. Ich habe genau die gleiche Herausforderung. p für pan abgekürzt. Typ_2 als Testspalte. Text kopiert und eingefügt aus Das Ausdrucksfeld: Ersetzen Sie ("Type_2", "p", "pan") alle Texte und Zitate in rot. ok Knopf ausgegraut. Ausgabevorschau: Ausdruck ungültig Parser-Fehler: (nichts detailliertes) Auswertungsfehler: Spalte 'p' nicht gefunden Ich erhalte genau die gleichen Ergebnisse, wenn ich Type_2 und p vertausche. Unterdunkel, weitere Vorschläge wären dankbar. Vielen Dank
VeM

Antworten:

22
replace( '(B)','(B)','County')

weist QGIS an, das '(B)' in '(B)' durch 'Land' zu ersetzen.

Sie wollen

replace("Name",'(B)','Country')

= Ersetzen Sie das '(B)' in "Name" durch 'Land'.

Beachten Sie, dass die doppelten Anführungszeichen einen Feldnamen angeben, während sich die einfachen Anführungszeichen auf eine statische Zeichenfolge beziehen . Diese sind nicht austauschbar.

Unterdunkel
quelle
@ AbrahamD Bitte akzeptieren Sie die Antwort, wenn es Ihr Problem gelöst hat
underdark
7

Die richtige Syntax lautet replace ([Feldname], '(B)', 'Land').

eseglem
quelle
3

Öffnen Sie zunächst den Geben Sie hier die Bildbeschreibung einFeldrechner und wählen Sie die Ersetzungsfunktion aus der Zeichenfolgenoption wie im folgenden Bild aus:

Zweitens weist QGIS an, das Ersetzen zu ersetzen ("Feldname", "(B)", "Land"). Zum Beispiel in diesem Fall; ersetzen ("MES_TIP", 'T', 'Rock'):

Drittens wählen Sie bitte den Ausgabefeldtyp: Text (Zeichenfolge) und bestimmen Sie dann den Feldnamen;Geben Sie hier die Bildbeschreibung ein

maliheh
quelle