Wypełnianie kolumny kolejnymi liczbami w QGIS?


30

Tworzę nową kolumnę w mojej tabeli atrybutów i ma ona wartość domyślną (na przykład 0). Chcę (prawdopodobnie przy użyciu kalkulatora pola), aby wiersz 1 miał wartość 1, wiersz 2 = 2 itd., Podobnie jak indeks numerowany.

Byłbym wdzięczny za przykład kodu dla kalkulatora pola (w tym użycie $rownum(myślę, że potrzebuję tego, aby przejść do linii)).

Odpowiedzi:


54

Wystarczy wpisać $rownum(QGIS 2) lub @row_number(QGIS 3+) jako wyrażenie. Proste. :)

Aktualną listę wszystkich funkcji kalkulatora pola można przeczytać w oficjalnych dokumentach .


Podążyłem za tobą, jednak bez wyraźnego powodu liczby zmieniają się w jednym punkcie. Doskonale działał od wiersza 1 do wiersza 129, a po przejściu do 789 ... czy istnieje sposób na rozwiązanie tego?
Guillaume,

1
Upewnij się, że nie masz aktywnego filtra wyświetlania, ponieważ nie ma powodu, aby skakał.
lynxlynxlynx



1

Dla mnie najlepszym i najłatwiejszym sposobem jest po prostu $id, zwróci idliczbę do każdego wiersza, indeksując ją 0.


Zwraca każdy identyfikator funkcji, ale sekwencja niekoniecznie zaczyna się od 0 i może mieć brakujące wartości. Dzieje się tak po usunięciu istniejącej funkcji (tj. Zacznij od warstwy mającej 3 funkcje, usuń # 2, wywołanie $ id zwróci 0 i 2.)
JGH

Masz rację, jeśli brakuje wartości, wystąpi problem z rzeczywistym numerem indeksującym. Myślę jednak, że to wywołanie $idpo usunięciu wierszy powinno się potwierdzić @row_number. Jeśli poprawnie zrozumiałem twoje potwierdzenie.
Vlad

nie, pozostawi dziury
JGH
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.