QGIS Model Designer - Sélection par attribut avec plusieurs paramètres de champ

Dec 04 2020

Je construis un modèle qui inclut un algorithme de «sélection par attribut», et j'essaie de sélectionner par plusieurs champs où la valeur correspond à une entrée de modèle.

Essentiellement, je veux que la requête de sélection soit 'champ1 = entrée ET champ2 = entrée'

Sur la base de l'info-bulle et de cette question ( Sélectionnez plusieurs champs dans Modelbuilder ), je pense que la syntaxe de sélection par plusieurs paramètres de champ doit être field1; field2:

Cependant, cela ne fonctionne pas pour l'outil de sélection par attribut. La boîte de dialogue se ferme et efface le champ «Attribut de sélection» lorsque je clique sur OK.

Existe-t-il une syntaxe différente pour l'outil de sélection par attribut ou n'est-ce pas possible? Je suis en mesure de contourner ce problème pour le moment en ayant deux algorithmes de sélection par attribut dans le modèle et en sélectionnant dans la sélection actuelle. J'utilise la version 3.16 de QGIS.

Réponses

Babel Dec 06 2020 at 23:07

Vous ne pouvez pas saisir deux champs à la fois ici avec cette fonction. La fonction select by attributen'a qu'une seule entrée possible pour l'attribut de sélection lorsque vous l'exécutez de manière autonome à partir de la boîte à outils. Je suppose donc qu'il n'acceptera pas plus d'entrées dans le modèle car il n'est pas conçu pour cela.

La question à laquelle vous avez lié a apparemment la capacité intégrée de sélectionner plus d'un champs d'entrée comme vous pouvez le voir à partir de la forme plurielle facultative: Dissolve field(s)- et là, cela a vraiment du sens.

Mais avec sélection par attribut, vous avez seulement la forme singulière: Selection attribute.

Si vous aviez deux champs d'entrée, QGIS aurait besoin d'une possibilité supplémentaire pour savoir comment ces deux champs sont combinés: field_1 = School_Code AND field_2 = School_Code? Ou plutôt: (field_1 OU field_2) = School_Code?

Donc, je suppose que votre meilleure option est de courir select by attributedeux fois. Ou vous pouvez essayer select by expressionoù vous êtes libre de définir des expressions complexes.