¿Usa comodines para los encabezados de columna en la Calculadora de campo QGIS?

10

Sé que puedes usar comodines para campos como este (en la Calculadora de campo):

case when "column" ILIKE '%example%' then 1
else 0
end

¿Puedes hacer algo similar para los encabezados de columna?

Pregunto esto porque estoy uniendo varias capas (usando las propiedades de Uniones ) y me facilitaría editar un conjunto de filtros en lugar de editar varios filtros, ya que los nombres de columna tendrán que incluir el nombre de la capa unida.

Estoy usando QGIS 2.2.

Joseph
fuente

Respuestas:

4

Lo siento. Los comodines se usan en cadenas , y desafortunadamente las comillas dobles alrededor del nombre de una columna no significan que sea una cadena. Los nombres de columna son "identificadores", que creo que son básicamente nombres de objetos, pero no soy un experto. Eso no significa que no haya forma de hacer lo que está pidiendo, pero no sucederá en la calculadora de campo.

Zack
fuente
Gracias Zack, entiendo que las columnas / campos son "identificadores", sería bueno que de alguna manera pudieran incluirlo. Aceptaré esta respuesta por ahora de todos modos :)
Joseph
6

Con la introducción del Editor de funciones en QGIS 2.8, es posible recorrer los nombres de campo y realizar algún tipo de análisis:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def fields(feature, parent):
    layer = qgis.utils.iface.activeLayer()
    field_names = [field.name() for field in layer.fields()]
    for name in field_names:
        if "some_name" in name:
            # Do something
Joseph
fuente