Hapus baris di mana sel kolom tertentu kosong

8

Apakah ada cara untuk menghapus semua baris di QGIS di mana sel kolom tertentu dalam tabel atribut kosong? misal baris tiga pada tabel di bawah ini. Saya perlu melakukan ini untuk kumpulan data besar dengan sekitar 180.000 baris.

| ID  | 2LE  | CHECK |
|-----|------|-------|
| 1   | PT   | FALSE |
| 2   | PT   | TRUE  |
| 3   | NULL | TRUE  |
| 4   | AT   | FALSE |
Stücke
sumber
Ini mungkin lebih mudah di luar QGIS. Di mana data disimpan?
jpmc26

Jawaban:

7

Anda juga bisa memfilter layer Anda.

Klik kanan pada layer pilih Filterdan gunakan "2LE" IS NOT NULL. Setelah itu Anda dapat mengklik kanan dan Save Aslayer vektor lainnya.

Stefan
sumber
7

Anda bisa menggunakan yang berikut ini di Konsol Python . Pilih layer Anda dan gunakan sesuatu seperti:

layer = iface.activeLayer()
with edit(layer):
    listOfIds = [feat.id() for feat in layer.getFeatures() if feat['fieldName'] == NULL]
    layer.deleteFeatures(listOfIds)
Yusuf
sumber
5

Anda bisa menggunakan Lapisan Virtual, untuk menyimpan kumpulan data asli dan membuat yang baru.

Jika tidak ada geometri, Anda harus memeriksa "Tidak ada geometri" di jendela "Buat lapisan virtual".

Ada berbagai cara untuk memeriksa NULLatau ``. Lihat juga SQLite pilih tempat kosong? - di Stack Overflow

Contoh pertanyaan. Saya ingin tahu dan menguji semuanya dengan sukses (tidak ada kesalahan):

SELECT * FROM your_table WHERE "2LE" IS NOT NULL

>

SELECT * FROM your_table WHERE "2LE" != 'NULL'  #if `NULL` is a string:

>

SELECT * FROM your_table WHERE ifnull("2LE", '') != ''

>

SELECT * FROM your_table WHERE ifnull(length("2LE"), 0) != 0

>

SELECT * FROM your_table WHERE coalesce("2LE", '') != ''

Anda dapat Save As(klik kanan) kueri (lapisan virtual) ke file vektor baru.

Stefan
sumber
5

Di tabel atribut, gunakan "Select by Expression" (bukan Filter) dan masukkan ekspresi agar sesuai dengan fitur yang ingin Anda hapus - "2LE" IS NULLsepertinya akan melakukannya. Maka Anda harus memilih semua fitur itu, dan mereka akan muncul dalam warna kuning.

Kemudian dengan pengeditan dihidupkan (beralih oleh ikon pensil di bilah alat atau di tempat lain) tekan Ctrl-X atau gunakan "Cut Features" di menu "Edit". Fitur yang dipilih harus menghilang.

Anda kemudian dapat mematikan pengeditan (ikon pensil) dan akan diminta untuk menyimpan perubahan jika Anda mau, yang akan menimpa data asli pada disk atau database.

Spacedman
sumber