Cú pháp truy vấn của QGIS khác nhau giữa bảng thuộc tính và bộ lọc tính năng


11

Sử dụng QGIS 2.16.2, tôi có thể chọn thành công các bản ghi từ bảng thuộc tính shapefile bằng biểu thức sau:

left("start_time", 10) = '2015-08-01'

Xin lưu ý rằng start_time là trường chuỗi.

Tuy nhiên, khi tôi sao chép và dán biểu thức tương tự vào Thuộc tính lớp của shapefile> Chung> bộ lọc tính năng> Trình tạo truy vấn tôi gặp lỗi sau:

nhập mô tả hình ảnh ở đây

Tôi hy vọng rằng biểu thức tương tự sẽ hoạt động ở mọi nơi trong QGIS. Tôi đang làm gì sai?

Câu trả lời:


12

Quan sát của bạn là chính xác, Trình tạo truy vấn không sử dụng cú pháp giống như phần còn lại của QGIS.

Xuyên suốt QGIS, cú pháp dựa trên biểu thức QGIS một phương ngữ SQL tùy chỉnh . Đây là khả năng di động giữa hầu hết tất cả các phần của QGIS nơi bạn có thể nhập bộ lọc, tính toán giá trị ... Cú pháp này được phân tích cú pháp và đánh giá trực tiếp trong QGIS (đôi khi có thể được gửi đến nhà cung cấp).

Bộ lọc tính năng nhà cung cấp được xác định thông qua trình tạo truy vấn (cũng thường được gọi là chuỗi tập hợp con ) cho lớp hoạt động khác nhau theo cách mà QGIS hoàn toàn không nhìn vào nó. Tất cả những gì nó làm là gửi nó cho nhà cung cấp. Trong trường hợp này, nhà cung cấp là OGR chỉ hỗ trợ một tập hợp con của cú pháp SQL nhưng đôi khi nó rất mạnh, ví dụ như khi truy cập cơ sở dữ liệu postgres / postgis.


Tốt để biết. Tôi đã sử dụng truy vấn sau trong bộ lọc và nó đã thay thế chính xác lựa chọn mà tôi đã thử trước đây: "start_time" THÍCH '2015-08-01%'
Stu Smith
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.