La sintaxis de consulta QGIS difiere entre la tabla de atributos y el filtro de características

11

Usando QGIS 2.16.2, puedo seleccionar con éxito registros de una tabla de atributos de shapefile usando la siguiente expresión:

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

Tenga en cuenta que start_time es un campo de cadena.

Sin embargo, cuando copio y pego la misma expresión en Propiedades de capa del archivo de forma> General> filtro de características> Generador de consultas, aparece el siguiente error:

ingrese la descripción de la imagen aquí

Esperaría que la misma expresión funcionara en todas partes en QGIS. ¿Qué estoy haciendo mal?

Stu Smith
fuente

Respuestas:

12

Su observación es correcta. El generador de consultas no utiliza la misma sintaxis que el resto de QGIS.

A lo largo de QGIS, la sintaxis se basa en las expresiones QGIS, un dialecto SQL personalizado . Esto es portátil entre casi todas las partes de QGIS donde puede ingresar un filtro, calcular un valor ... Esta sintaxis se analiza y evalúa directamente en QGIS (y algunas partes pueden enviarse al proveedor a veces).

El filtro de características del proveedor definido a través del generador de consultas (también conocido como cadena de subconjunto ) para la capa funciona de forma diferente en la forma en que QGIS no lo ve en absoluto. Todo lo que hace es enviarlo al proveedor. En este caso, el proveedor es OGR, que solo admite un subconjunto de la sintaxis SQL, pero a veces es muy potente, por ejemplo, al acceder a una base de datos postgres / postgis.

Matthias Kuhn
fuente
Bueno saber. Usé la siguiente consulta en el filtro, y reemplazó correctamente la selección que intenté anteriormente: "start_time" LIKE '2015-08-01%'
Stu Smith