Tengo dos columnas en mi tabla de atributos QGIS. La primera columna contiene valores que no están contenidos en la segunda columna y viceversa. Me gustaría agregar un nuevo campo que contenga los valores de la primera y segunda columna. Pensé que podría ser tan simple como "Valor 1 + Valor 2), pero esto me da resultados nulos . Todos los valores son cadenas.
Value 1| Value 2 | New Column
-------------------------
Bacon | | Bacon
Eggs | | Eggs
| Cheese | Cheese
| Ham | Ham
qgis
attribute-table
Dunuts
fuente
fuente
Respuestas:
Muchos operadores y funciones en SQL (y, por lo tanto, expresiones) regresan
NULL
si uno de los parámetros eraNULL
Los siguientes ejemplos demuestran el comportamiento de varios operadores en una capa con las columnas
A
yB
."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'
En su caso, desea trabajar con cualquiera
CONCAT
oCOALESCE
dependiendo del comportamiento esperado con múltiples / sin valores.fuente
Puede usar la calculadora de campo y seguir estos pasos:
1- Crear nuevo campo (cadena)
2- Utilice la función "Fusionar"
La función Colaesce devuelve el primer no NULL
fuente
Seleccione la capa en el panel de capas y abra la consola de Python y ejecute este fragmento:
fuente
También puede usar la calculadora de campo, agregar un nuevo campo y alimentarlo con lo siguiente
fuente