QGIS sorgu sözdizimi, özellik tablosu ve özellik filtresi arasında farklılık gösterir


11

QGIS 2.16.2 kullanarak, aşağıdaki ifadeyi kullanarak bir şekil dosyası öznitelik tablosundan kayıtları başarıyla seçebilirim:

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

Başlangıç ​​zamanının bir dize alanı olduğunu lütfen unutmayın.

Ancak, aynı ifadeyi kopyalayıp şekil dosyasının Katman Özellikleri> Genel> özellik filtresi> Sorgu Oluşturucu'ya yapıştırdığımda aşağıdaki hatayı alıyorum:

resim açıklamasını buraya girin

Aynı ifadenin QGIS'de her yerde çalışmasını beklerdim. Neyi yanlış yapıyorum?

Yanıtlar:


12

Gözleminiz doğru, Sorgu Oluşturucu QGIS'in geri kalanıyla aynı sözdizimini kullanmaz.

QGIS boyunca sözdizimi, özelleştirilmiş bir SQL lehçesi olan QGIS İfadelerini temel alır . Bu, bir filtre girebileceğiniz, bir değer hesaplayabileceğiniz neredeyse tüm QGIS parçaları arasında taşınabilir ... Bu sözdizimi doğrudan QGIS'de ayrıştırılır ve değerlendirilir (ve parçaları bazen sağlayıcıya gönderilebilir).

Sağlayıcı özelliği filtre aracılığıyla tanımlanan sorgu oluşturucu (aynı zamanda sık olarak anılacaktır alt küme dizesi katmanı için QGIS hiç bakmak etmediğini şekilde farklı çalışır). Tek yaptığı, sağlayıcıya göndermek. Bu durumda, sağlayıcı yalnızca SQL sözdiziminin bir alt kümesini destekleyen OGR'dur, ancak bazen çok güçlüdür, örneğin bir postgres / postgis veritabanına erişirken.


Bunu bildiğim iyi oldu. Filtrede aşağıdaki sorguyu kullandım ve daha önce denediğim seçimi doğru şekilde değiştirdi: "start_time" GİBİ "2015-08-01% '
Stu Smith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.