Jak korzystać z funkcji zamiany ciągu w Field Calculator?

12

W tabeli atrybutów próbuję zastąpić jeden ciąg innym ciągiem za pomocą funkcji „zamień”. Na przykład istnieje wiele funkcji, których pole „NAZWA” zawiera ciąg „(B)” i chcę zastąpić to słowem „Hrabstwo”. Wybieram pole wyboru „aktualizuj istniejące pole” i używam następującego wyrażenia

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

W rezultacie pole „NAZWA” dla każdej cechy jest zastępowane przez „Hrabstwo” niezależnie od tego, czy pole „NAZWA” zawierało pierwotnie ciąg „(B)”. Każda pomoc będzie mile widziana.

GrahamD
źródło
GrahamD, dzięki za post i podmroku, dzięki za odpowiedź. Mam dokładnie to samo wyzwanie. p w skrócie dla pan. Wpisz 2 jako kolumnę testową. tekst skopiowany i wklejony z pola Wyrażenie: zamień („Type_2”, „p”, „pan”) cały tekst i cytaty na czerwono. przycisk OK wyszarzony. Podgląd danych wyjściowych: wyrażenie niepoprawne Błąd analizatora składni: (nic szczegółowego) Błąd ewaluacji: Nie znaleziono kolumny „p” Otrzymuję dokładnie takie same wyniki, jeśli powinienem zamienić Type_2 i p. podmrok, wszelkie dalsze sugestie będą mile widziane. Dziękuję
VeM

Odpowiedzi:

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

nakazuje QGIS zamianę „(B)” w „(B)” na „Kraj”.

Chcesz

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

= zamień „(B)” w „Nazwa” na „Kraj”.

Zauważ, że podwójne cudzysłowy wskazują nazwę pola, podczas gdy pojedyncze cudzysłowy odnoszą się do ciągu statycznego . Nie są one wymienne.

podmrok
źródło
@GrahamD proszę przyjąć odpowiedź, jeśli rozwiązało to twój problem
podmrok
7

Prawidłowa składnia to replace ([nazwa_pola], „(B)”, „Kraj”)

eseglem
źródło
3

Najpierw otwórz kalkulator pola i wybierz funkcję zamiany z ciągu znaków, wprowadź opis zdjęcia tutajjak na poniższym obrazku:

Po drugie, nakazuje QGIS zastąpienie zastępowania („Nazwa pola”, „(B)”, „Kraj”). Na przykład w tym przypadku; zamień („MES_TIP”, „T”, „Rock”):

Po trzecie, wybierz typ pola wyjściowego: tekst (ciąg), a następnie określ nazwę pola;wprowadź opis zdjęcia tutaj

Maliheh
źródło