วิธีการแยก 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
สมมติฐาน
เมื่อสร้างวิธีการในการแยก เราสมมติว่า:
- ที่อยู่ทั้งหมดอยู่ภายในสหรัฐอเมริกา
- บางรายการอาจมีชื่อผู้รับหรือบรรทัดที่อยู่รอง (เช่น “Suite B”)
- มีคำย่อและความผิดพลาดในการพิมพ์หลายอย่าง
กลยุทธ์การแยกแบบขั้นตอน
1. เริ่มจากรหัสไปรษณีย์
เริ่มการแยกตั้งแต่ท้ายของสตริงที่อยู่ รหัสไปรษณีย์จะพบได้ใกล้กับท้ายสุดโดยปกติจะปรากฏในหนึ่งในสองรูปแบบที่รู้จัก:
- XXXXX (5 หลัก)
- XXXXX-XXXX (Zip+4)
หากไม่มีรูปแบบใดๆ ปรากฏขึ้น คุณอาจยังอยู่ในส่วนของเมืองหรือรัฐ
2. สกัดรัฐ
ก่อนหน้ารหัสไปรษณีย์ คุณจะพบรัฐ นี่อาจเป็น:
- คำย่อสองตัว (เช่น DE สำหรับ Delaware)
- เขียนออกมาเป็นคำเต็ม แม้ว่าจะไม่ค่อยพบ
การใช้รายการอ้างอิงของคำย่อรัฐในสหรัฐอเมริกาสามารถช่วยปรับให้ผลลัพธ์ให้เป็นมาตรฐาน ความผิดพลาดในการพิมพ์สามารถลดลงได้โดยการใช้ Soundex อัลกอริธึมสำหรับการแก้ไขคำในการตั้งชื่อรัฐ
3. ระบุเมือง
โดยปกติ ชื่อเมืองจะปรากฏก่อนหน้ารัฐ ในขณะการแยก คุณสามารถตรวจสอบรหัสไปรษณีย์ที่ได้จากการประมวลผลเทียบกับ ฐานข้อมูลรหัสไปรษณีย์ เพื่อยืนยันความถูกต้อง ซึ่งจะทำหน้าที่เป็นกลไกตรวจสอบให้แน่ใจว่ามีการเชื่อมโยงระหว่างเมืองและรัฐที่ถูกต้อง
4. กำหนดที่อยู่ถนน
ที่อยู่ถนนโดยปกติจะพบที่จุดเริ่มต้นของสตริง หากมีหลายบรรทัด บรรทัดที่สองมักจะมีหมายเลขชุดหรือ P.O. Box แยกส่วนนี้ออกเป็นส่วนประกอบต่างๆ โดยการระบุรูปแบบทั่วไป (เช่น ตัวอักษรเช่น วรรคตอน และการขึ้นบรรทัดใหม่)
5. การตั้งชื่อบรรทัดที่อยู่
การระบุชื่อหรือตัวผู้รับอาจซับซ้อน กฎที่อาจใช้:
- หากบรรทัดไม่มีการขึ้นต้นด้วยตัวเลข หรือเริ่มต้นด้วยคำที่เช่น “attn:” หรือ “attention to:” ให้พิจารณาว่าเป็นชื่อมากกว่าที่อยู่
ขั้นตอนสุดท้ายและการตรวจสอบทางสายตา
หลังจากการแยกแล้ว เป็นการดีที่จะทำการตรวจสอบผลลัพธ์ทางสายตา เนื่องจากข้อผิดพลาดที่เกิดจากข้อมูลจากแหล่งต้นทางและความหลากหลายของรูปแบบ การตรวจสอบด้วยมือสามารถให้ความมั่นใจว่ามิได้มีความคลาดเคลื่อนที่สำคัญ
สรุป
แม้ว่าการแยกสตริงเดียวออกเป็นองค์ประกอบที่อยู่ที่ถูกต้องจะมีความท้าทายจากการไม่มีความสอดคล้องกันและความไม่ถูกต้องที่อาจเกิดขึ้น แต่การปฏิบัติตามแนวทางที่มีโครงสร้างสามารถช่วยทำให้กระบวนการตรงไปตรงมามากขึ้น โดยการทำงานย้อนหลังจากรหัสไปรษณีย์และใช้การตรวจสอบกับข้อมูลที่รู้จัก คุณสามารถค้นหาข้อมูลที่อยู่ที่มีค่าได้อย่างมีประสิทธิภาพ
การใช้วิธีการเหล่านี้จะช่วยให้คุณจัดการกับตารางที่เป็นระเบียบและเป็นมาตรฐานสำหรับบันทึกของคุณใน SQL Server ทำให้การจัดการข้อมูลในอนาคตเป็นเรื่องง่ายขึ้นมาก ขอให้โชคดีในการแยก!