วิธีการแยก Street Address, City, State และ Zip Code ที่สามารถใช้งานได้จากสตริงเดียว

เมื่อมีการโยกย้ายข้อมูลจากฐานข้อมูล Access ไปยัง SQL Server 2005 จะมีความท้าทายทั่วไปเกิดขึ้น นั่นคือการแยกฟิลด์ที่อยู่เดียวออกเป็นส่วนประกอบที่แยกกัน สำหรับตัวอย่าง ที่อยู่อาจได้รับจากผู้ใช้หรือฐานข้อมูลที่มีอยู่ในสตริงที่ยุ่งเหยิง เช่นนี้:

A. P. Croll & Son 2299 Lewes-Georgetown Hwy, Georgetown, DE 19947

ด้วยข้อมูลประมาณ 4,000 รายการที่จะประมวลผล งานนี้อาจกลายเป็นเรื่องที่หนักหนาเกินไป บล็อกโพสต์นี้จะช่วยแนะนำคุณผ่านวิธีการที่มีประสิทธิภาพและเป็นรูปธรรมในการแบ่งสตริงที่อยู่เป็นส่วนที่ใช้งานได้: ที่อยู่ถนน เมือง รัฐ และรหัสไปรษณีย์

เข้าใจปัญหา

ความท้า

ความท้าทายหลักอยู่ที่ความไม่มีแบบแผนของรูปแบบที่อยู่ ที่อยู่แต่ละรายการอาจมี:

  • ความหลากหลายในการนำเสนอที่อยู่ถนน (เช่น การรวมชื่อผู้รับหรือหมายเลขชุด)
  • คำย่อสำหรับรัฐ
  • ความผิดพลาดในการพิมพ์และความไม่สอดคล้องกันของรูปแบบ
  • รหัสไปรษณีย์ 5 หลักมาตรฐาน หรือรหัสไปรษณีย์ขยาย Zip+4

สมมติฐาน

เมื่อสร้างวิธีการในการแยก เราสมมติว่า:

  1. ที่อยู่ทั้งหมดอยู่ภายในสหรัฐอเมริกา
  2. บางรายการอาจมีชื่อผู้รับหรือบรรทัดที่อยู่รอง (เช่น “Suite B”)
  3. มีคำย่อและความผิดพลาดในการพิมพ์หลายอย่าง

กลยุทธ์การแยกแบบขั้นตอน

1. เริ่มจากรหัสไปรษณีย์

เริ่มการแยกตั้งแต่ท้ายของสตริงที่อยู่ รหัสไปรษณีย์จะพบได้ใกล้กับท้ายสุดโดยปกติจะปรากฏในหนึ่งในสองรูปแบบที่รู้จัก:

  • XXXXX (5 หลัก)
  • XXXXX-XXXX (Zip+4)

หากไม่มีรูปแบบใดๆ ปรากฏขึ้น คุณอาจยังอยู่ในส่วนของเมืองหรือรัฐ

2. สกัดรัฐ

ก่อนหน้ารหัสไปรษณีย์ คุณจะพบรัฐ นี่อาจเป็น:

  • คำย่อสองตัว (เช่น DE สำหรับ Delaware)
  • เขียนออกมาเป็นคำเต็ม แม้ว่าจะไม่ค่อยพบ

การใช้รายการอ้างอิงของคำย่อรัฐในสหรัฐอเมริกาสามารถช่วยปรับให้ผลลัพธ์ให้เป็นมาตรฐาน ความผิดพลาดในการพิมพ์สามารถลดลงได้โดยการใช้ Soundex อัลกอริธึมสำหรับการแก้ไขคำในการตั้งชื่อรัฐ

3. ระบุเมือง

โดยปกติ ชื่อเมืองจะปรากฏก่อนหน้ารัฐ ในขณะการแยก คุณสามารถตรวจสอบรหัสไปรษณีย์ที่ได้จากการประมวลผลเทียบกับ ฐานข้อมูลรหัสไปรษณีย์ เพื่อยืนยันความถูกต้อง ซึ่งจะทำหน้าที่เป็นกลไกตรวจสอบให้แน่ใจว่ามีการเชื่อมโยงระหว่างเมืองและรัฐที่ถูกต้อง

4. กำหนดที่อยู่ถนน

ที่อยู่ถนนโดยปกติจะพบที่จุดเริ่มต้นของสตริง หากมีหลายบรรทัด บรรทัดที่สองมักจะมีหมายเลขชุดหรือ P.O. Box แยกส่วนนี้ออกเป็นส่วนประกอบต่างๆ โดยการระบุรูปแบบทั่วไป (เช่น ตัวอักษรเช่น วรรคตอน และการขึ้นบรรทัดใหม่)

5. การตั้งชื่อบรรทัดที่อยู่

การระบุชื่อหรือตัวผู้รับอาจซับซ้อน กฎที่อาจใช้:

  • หากบรรทัดไม่มีการขึ้นต้นด้วยตัวเลข หรือเริ่มต้นด้วยคำที่เช่น “attn:” หรือ “attention to:” ให้พิจารณาว่าเป็นชื่อมากกว่าที่อยู่

ขั้นตอนสุดท้ายและการตรวจสอบทางสายตา

หลังจากการแยกแล้ว เป็นการดีที่จะทำการตรวจสอบผลลัพธ์ทางสายตา เนื่องจากข้อผิดพลาดที่เกิดจากข้อมูลจากแหล่งต้นทางและความหลากหลายของรูปแบบ การตรวจสอบด้วยมือสามารถให้ความมั่นใจว่ามิได้มีความคลาดเคลื่อนที่สำคัญ

สรุป

แม้ว่าการแยกสตริงเดียวออกเป็นองค์ประกอบที่อยู่ที่ถูกต้องจะมีความท้าทายจากการไม่มีความสอดคล้องกันและความไม่ถูกต้องที่อาจเกิดขึ้น แต่การปฏิบัติตามแนวทางที่มีโครงสร้างสามารถช่วยทำให้กระบวนการตรงไปตรงมามากขึ้น โดยการทำงานย้อนหลังจากรหัสไปรษณีย์และใช้การตรวจสอบกับข้อมูลที่รู้จัก คุณสามารถค้นหาข้อมูลที่อยู่ที่มีค่าได้อย่างมีประสิทธิภาพ

การใช้วิธีการเหล่านี้จะช่วยให้คุณจัดการกับตารางที่เป็นระเบียบและเป็นมาตรฐานสำหรับบันทึกของคุณใน SQL Server ทำให้การจัดการข้อมูลในอนาคตเป็นเรื่องง่ายขึ้นมาก ขอให้โชคดีในการแยก!