แสดงหลายฟิลด์เป็นเลเบลหากหนึ่งฟิลด์เป็น null ใน QGIS?


13

ฉันมีปัญหาบางอย่างที่พยายามแสดงหลายช่องสำหรับป้ายกำกับเดียวใน QGIS ใน QGIS2.6 การพยายามแสดงเลเบลสำหรับคุณลักษณะที่ประกอบด้วยหลายฟิลด์ส่งผลให้มีเลเบลว่างหากหนึ่งในฟิลด์นั้นเป็นค่าว่าง ตัวอย่างเช่นในกล่องโต้ตอบนิพจน์เลเบล:

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

จะทำงานตามปกติเว้นแต่ว่าฟิลด์ใดฟิลด์หนึ่งเป็นโมฆะจากนั้นผลลัพธ์จะไม่มีการแสดงป้ายกำกับ ใช้ '||' ตัวดำเนินการแทนในกล่องโต้ตอบนิพจน์ยังส่งผลให้เกิดลักษณะการทำงานเดียวกัน

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

มีวิธีแสดงป้ายกำกับหรือไม่แม้ว่าฟิลด์ใดฟิลด์หนึ่งจะว่างเปล่า

คำตอบ:


20

ใช้ฟังก์ชั่น "Coalesce" Coalesce ใช้ค่าที่ไม่ใช่ค่าแรกจากอาร์กิวเมนต์ ดังนั้นการแสดงออกนี้ควรทำงาน:

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

1
คุณสามารถรวมบรรทัดใหม่ภายในฟังก์ชันรวมตัวกันได้ถ้าเหมาะสมเพื่อหลีกเลี่ยงบรรทัดว่างที่อยู่ตรงกลางของป้ายกำกับที่ฉันใช้นิพจน์เช่นcoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.