Hiển thị nhiều trường dưới dạng nhãn nếu một trường là null trong QGIS?


12

Tôi đang gặp một số vấn đề khi cố gắng hiển thị nhiều trường cho một nhãn trong QGIS. Trong QGIS2.6, cố gắng hiển thị nhãn cho một tính năng bao gồm nhiều trường dẫn đến một nhãn trống nếu một trong các trường là null. Vì vậy, ví dụ, trong hộp thoại biểu thức nhãn:

concat("Temp Site",'\n',"Notes",'\n',"Function")

sẽ hoạt động bình thường trừ khi một trong các trường là null, sau đó kết quả là không có nhãn nào được hiển thị. Sử dụng '||' toán tử thay vào đó trong hộp thoại biểu thức cũng dẫn đến hành vi tương tự:

"Temp Site" || '\n'  ||  "Notes" || '\n'  ||  "Function"

Có cách nào để hiển thị nhãn ngay cả khi một trong các trường là null không?

Câu trả lời:


20

Sử dụng chức năng "Coalesce". Coalesce lấy giá trị khác null đầu tiên từ các đối số của nó. Vì vậy, biểu thức này sẽ hoạt động:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')

1
Bạn cũng có thể bọc dòng mới trong hàm kết hợp, nếu có ý nghĩa để tránh các dòng trống ở giữa nhãn tôi đã sử dụng một biểu thức nhưcoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.