У меня есть две колонки в моей таблице атрибутов QGIS. Первый столбец содержит значения, которые не содержат второй столбец и наоборот. Я хотел бы добавить новое поле, которое содержит значения из первого и второго столбца. Я думал, что это может быть так же просто, как «Значение 1 + Значение 2), но это просто дает мне нулевые результаты. Все значения являются строками.
Value 1| Value 2 | New Column
-------------------------
Bacon | | Bacon
Eggs | | Eggs
| Cheese | Cheese
| Ham | Ham
qgis
attribute-table
Dunuts
источник
источник
Ответы:
Многие операторы и функции в SQL (и, следовательно, выражения) возвращают,
NULL
если один из параметров былNULL
Следующие примеры демонстрируют поведение различных операторов на слое со столбцами
A
иB
."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'
В вашем случае вы хотите работать с одним
CONCAT
или вCOALESCE
зависимости от ожидаемого поведения с несколькими значениями или без них.источник
Вы можете использовать калькулятор поля и выполнить следующие действия:
1- Создать новое поле (строку)
2- Используйте функцию «Объединить»
Функция Colaesce возвращает первое не NULL
источник
Выберите слой на панели слоев, откройте консоль python и запустите этот фрагмент:
источник
Вы также можете использовать калькулятор поля, добавить новое поле и скормить ему следующее
источник