Vous utilisez des caractères génériques pour les en-têtes de colonnes dans QGIS Field Calculator?

10

Je sais que vous pouvez utiliser des caractères génériques pour des champs comme celui-ci (dans la calculatrice de champ):

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

Pouvez-vous faire quelque chose de similaire pour les en-têtes de colonne eux-mêmes?

Je pose cette question parce que je joins plusieurs couches (en utilisant les propriétés de jointure ) et cela me faciliterait la tâche de modifier un ensemble de filtres au lieu de modifier plusieurs filtres, car les noms de colonne devront inclure le nom de la couche jointe.

J'utilise QGIS 2.2.

Joseph
la source

Réponses:

4

Pardon. Les caractères génériques sont à utiliser dans les chaînes , et malheureusement, les guillemets doubles autour d'un nom de colonne ne signifient pas qu'il s'agit d'une chaîne. Les noms de colonnes sont des "identificateurs", qui sont à mon avis essentiellement des noms d'objets, mais je ne suis pas un expert. Cela ne signifie pas qu'il n'y a aucun moyen de faire ce que vous demandez, mais cela ne se produira pas dans la calculatrice de terrain.

Zack
la source
Merci Zack, je comprends que les colonnes / champs sont des "identifiants", ce serait bien s'ils pouvaient l'inclure. J'accepterai cette réponse pour l'instant de toute façon :)
Joseph
6

Avec l'introduction de l' éditeur de fonction dans QGIS 2.8, il est possible de parcourir les noms de champ et d'effectuer une sorte d'analyse:

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
la source