Xóa các hàng trong đó ô của một cột cụ thể trống


8

Có cách nào để xóa tất cả các hàng trong QGIS trong đó ô của một cột cụ thể trong bảng thuộc tính trống không? ví dụ dòng ba trong bảng dưới đây. Tôi cần phải làm điều này cho một tập dữ liệu lớn với khoảng 180.000 hàng.

| ID  | 2LE  | CHECK |
|-----|------|-------|
| 1   | PT   | FALSE |
| 2   | PT   | TRUE  |
| 3   | NULL | TRUE  |
| 4   | AT   | FALSE |

Điều này có thể dễ dàng hơn bên ngoài QGIS. Dữ liệu được lưu trữ trong cái gì?
jpmc26

Câu trả lời:


7

Bạn cũng có thể lọc lớp của bạn.

Nhấp chuột phải vào lớp chọn Filtervà sử dụng "2LE" IS NOT NULL. Sau đó, bạn có thể nhấp chuột phải và Save Asmột lớp vector khác.


7

Bạn có thể sử dụng như sau trong Bảng điều khiển Python . Chọn lớp của bạn và sử dụng một cái gì đó như:

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

5

Bạn có thể sử dụng Lớp ảo, để giữ tập dữ liệu gốc và tạo lớp mới.

Nếu không có hình học, bạn phải kiểm tra "Không có hình học" trong cửa sổ "Tạo lớp ảo".

Có nhiều cách khác nhau để kiểm tra NULLhoặc ``. Xem thêm SQLite chọn chỗ trống? - trên Stack Overflow

Ví dụ truy vấn. Tôi đã tò mò và thử nghiệm tất cả chúng với thành công (không có lỗi):

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", '') != ''

Bạn có thể Save As(nhấp chuột phải) truy vấn (lớp ảo) vào một tệp vectơ mới.


5

Trong bảng thuộc tính, sử dụng "Chọn theo biểu thức" (không phải Bộ lọc) và nhập biểu thức để khớp với các tính năng bạn muốn xóa - "2LE" IS NULLdường như sẽ làm điều đó. Sau đó, bạn sẽ nhận được tất cả các tính năng được chọn, và chúng sẽ xuất hiện màu vàng.

Sau đó, khi chỉnh sửa được bật (bật bằng biểu tượng bút chì trên thanh công cụ hoặc ở nơi khác), nhấn Ctrl-X hoặc sử dụng "Tính năng cắt" trong menu "Chỉnh sửa". Các tính năng được chọn sẽ biến mất.

Sau đó, bạn có thể tắt chỉnh sửa (biểu tượng bút chì) và sẽ được nhắc lưu các thay đổi nếu bạn muốn, nó sẽ ghi đè lên dữ liệu gốc trên đĩa hoặc cơ sở dữ liệu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.