Eu tenho duas colunas na minha tabela de atributos QGIS. A primeira coluna contém valores que não estão contidos na segunda coluna e vice-versa. Eu gostaria de adicionar um novo campo que contenha os valores da primeira e da segunda coluna. Eu pensei que poderia ser tão simples como "Valor 1 + Valor 2), mas isso só me dá resultados nulos . Todos os valores são seqüências de caracteres.
Value 1| Value 2 | New Column
-------------------------
Bacon | | Bacon
Eggs | | Eggs
| Cheese | Cheese
| Ham | Ham
qgis
attribute-table
Dunuts
fonte
fonte
Respostas:
Muitos operadores e funções no SQL (e, portanto, expressões) retornam
NULL
se um dos parâmetros foiNULL
Os exemplos a seguir demonstram o comportamento de vários operadores em uma camada com as colunas
A
eB
."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'
No seu caso, você deseja trabalhar com
CONCAT
ouCOALESCE
dependendo do comportamento esperado com vários / nenhum valor.fonte
Você pode usar a calculadora de campo e siga estas etapas:
1- Crie um novo campo (string)
2- Use a função "coalescer"
A função Colaesce retorna o primeiro não NULL
fonte
Selecione a camada no painel de camadas, abra o console python e execute este trecho:
fonte
Você também pode usar a calculadora de campo, adicionar um novo campo e alimentá-lo da seguinte maneira
fonte