J'ai deux colonnes dans ma table d'attributs QGIS. La première colonne contient des valeurs qui ne sont pas contenues dans la deuxième colonne et vice versa. Je voudrais ajouter un nouveau champ qui contient à la fois les valeurs de la première et de la deuxième colonne. J'ai pensé que cela pourrait être aussi simple que "Valeur 1 + Valeur 2) mais cela me donne juste des résultats Null . Toutes les valeurs sont des chaînes.
Value 1| Value 2 | New Column
-------------------------
Bacon | | Bacon
Eggs | | Eggs
| Cheese | Cheese
| Ham | Ham
qgis
attribute-table
Dunuts
la source
la source
Réponses:
De nombreux opérateurs et fonctions en SQL (et donc des expressions) retournent
NULL
si l'un des paramètres étaitNULL
Les exemples suivants illustrent le comportement de divers opérateurs sur une couche avec les colonnes
A
etB
."A" + "B"
NULL + 'text'
➝NULL
'a' + 'b'
➝'ab'
"A" || "B"
NULL || 'text'
➝NULL
'a' || 'b'
➝'ab'
CONCAT("A", "B")
CONCAT(NULL, 'text')
➝'text'
CONCAT('a', 'b')
➝'ab'
COALESCE("A", "B")
COALESCE(NULL, 'text')
➝'text'
COALESCE('a', 'b')
➝'a'
COALESCE('a', NULL)
➝'a'
COALESCE(NULL, NULL, 'Other')
➝'Other'
Dans votre cas, vous souhaitez travailler avec
CONCAT
ouCOALESCE
selon le comportement attendu avec plusieurs / aucune valeur.la source
Vous pouvez utiliser la calculatrice de champ et suivre ces étapes:
1- Créer un nouveau champ (chaîne)
2- Utiliser la fonction "Coalesce"
La fonction Colaesce renvoie la première non NULL
la source
Sélectionnez le calque dans le panneau des calques et ouvrez la console python et exécutez cet extrait:
la source
Vous pouvez également utiliser la calculatrice de champ, ajouter un nouveau champ et lui fournir les informations suivantes
la source