Saya memiliki dua kolom di tabel atribut QGIS saya. Kolom pertama berisi nilai-nilai yang tidak berisi kolom kedua dan sebaliknya. Saya ingin menambahkan bidang baru yang berisi nilai dari kolom pertama dan kedua. Saya pikir mungkin sesederhana "Nilai 1 + Nilai 2) tetapi ini hanya memberi saya hasil Null . Semua nilai adalah string.
Value 1| Value 2 | New Column
-------------------------
Bacon | | Bacon
Eggs | | Eggs
| Cheese | Cheese
| Ham | Ham
qgis
attribute-table
Dunuts
sumber
sumber
Jawaban:
Banyak operator dan fungsi dalam SQL (dan karenanya ekspresi) kembali
NULL
jika salah satu parameternyaNULL
Contoh-contoh berikut menunjukkan perilaku berbagai operator pada lapisan dengan kolom
A
danB
."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'
Dalam kasus Anda, Anda ingin bekerja dengan salah satu
CONCAT
atauCOALESCE
tergantung pada perilaku yang diharapkan dengan beberapa nilai / tidak.sumber
Anda bisa menggunakan kalkulator lapangan dan ikuti langkah-langkah ini:
1- Buat bidang baru (string)
2- Gunakan Fungsi "Penggabungan"
Fungsi Colaesce mengembalikan yang pertama bukan NULL
sumber
Pilih layer di panel layer dan buka konsol python dan jalankan cuplikan ini:
sumber
Anda juga bisa menggunakan kalkulator bidang, menambahkan bidang baru, dan memberi dia informasi berikut
sumber