แทนที่ค่า Null ทั้งหมดจากตารางแอตทริบิวต์ด้วยค่าศูนย์โดยใช้ QGIS


14

ฉันมีคอลัมน์ใหม่ในตารางคุณลักษณะของฉันที่มีค่าเป็นจำนวนมากและฉันต้องการแทนที่พวกเขาทั้งหมดเป็นศูนย์

ฉันจะทำสิ่งนั้นในเครื่องคำนวณภาคสนามได้อย่างไร

ฉันใช้ QGIS 1.8

คำตอบ:


17

ใน QGIS เปิดตารางแอตทริบิวต์ของคุณแล้วคลิกปุ่ม "เลือกคุณสมบัติโดยใช้นิพจน์" หากต้องการค้นหาระเบียน null ทั้งหมดสำหรับเขตข้อมูลในไฟล์รูปร่างแบบสอบถามของคุณจะมีลักษณะดังนี้:

"field_name" is null

คุณสามารถค้นหาชื่อเขตข้อมูลของคุณในรายการเขตข้อมูลและค่าดับเบิลคลิกที่เขตข้อมูลที่คุณต้องการรับลงในกล่องนิพจน์

ตรวจสอบให้แน่ใจว่าคุณได้เลือกรายการบันทึกที่กรองใหม่ จากนั้นกลับไปที่ตารางแอตทริบิวต์แล้วคลิกปุ่มเครื่องคำนวณฟิลด์ ทำเครื่องหมายที่ช่อง "อัปเดตฟิลด์ที่มีอยู่เดิม" - ตรวจสอบให้แน่ใจว่าได้เลือกช่องทำเครื่องหมาย 'เฉพาะการอัพเดตที่เลือก' จากนั้นเลือกฟิลด์ที่คุณต้องการอัปเดตจากดรอปดาวน์บ็อกซ์ ใส่ 0 ในกล่องนิพจน์คลิกตกลงและคุณทำเสร็จแล้ว


5

คุณสามารถทำได้โดยตรงในเครื่องคำนวณภาคสนาม:

  • เปิดเครื่องคิดเลขภาคสนาม
  • ทำเครื่องหมายที่ช่อง“ อัพเดตฟิลด์ที่มีอยู่”
  • เลือกเขตข้อมูลที่คุณต้องการทำงาน
  • ป้อนนิพจน์ต่อไปนี้ในกล่องนิพจน์: if("fieldname" is null, 0, "fieldname")แทนที่fieldnameด้วยฟิลด์ชื่อจริงของคุณ

เห็นได้ชัดว่าปลอดภัยกว่าในการสร้างเขตข้อมูลใหม่แทนที่จะเขียนทับเขตข้อมูลเก่าในกรณีที่มีสิ่งผิดปกติเกิดขึ้น


0

ฉันเพิ่งรู้ว่าคุณสามารถแก้ไข –.dbf– ไฟล์ของโฟลเดอร์รูปร่างของคุณและแทรกคอลัมน์ใหม่แถว ฯลฯ ที่นั่นได้! สำหรับการทำให้ตารางต้นแบบของแผนที่เป็นจริง เพียงค้นหาไฟล์เช่น: LATINAMERICA.dbf ให้เปิดด้วย LibreOffice (อย่างน้อยฉันก็เปิดด้วย "Spreadsheets" และทำงานได้อย่างสมบูรณ์) แก้ไขมันแล้วบันทึกเป็น. dbf ด้วยชื่อเดียวกันและในโฟลเดอร์เดียวกัน จากนั้นเปิดแผนที่อีกครั้งและจะมีการเปลี่ยนแปลงในตารางหลัก ... มันใช้งานได้สำหรับฉัน (Qgis WIEN 2.8) ฉันหวังว่ามันจะทำงานร่วมกับคุณทุกคนเพราะมันเป็นความเจ็บปวดที่แท้จริงค้นหาวิธีแก้ปัญหานั้น


1
มันเป็นความคิดที่ดีที่จะแก้ไข. dbf ด้วยตนเองเนื่องจากการจัดการที่ไม่ถูกต้อง (เช่นการเรียงลำดับ) อาจทำให้เกิดปัญหาดูgis.stackexchange.com/questions/55544/…
JR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.