oracleskill

Home TUTORIAL แยก ชื่อ กับ นามสกุล ในคอลัมน์ Full Name ออกจากกัน

แยก ชื่อ กับ นามสกุล ในคอลัมน์ Full Name ออกจากกัน

(Separate firstname and lastname from fullname)

 

หลาย ครั้งที่คนออกแบบตาราง เก็บข้อมูล ชื่อ-นามสกุล  รวมกันอยู่ในคอลัมน์ Full Name  เดียวกัน มีเพียงช่องว่าง ( เคาะ Space Bar) เป็นตัวแยกระหว่างชื่อ กับ นามกุลเท่านั้น  เช่น  Polla  Taylor

แต่บางที เราจำเป็นต้องการแสดงแค่ ชื่อ  ไม่เอานามกุล  หรือ แสดง ชื่อ กับ นามกุล แยกเป็นคนละคอลัมน์  จะทำอย่างไรดี ?

จุดสำคัญ ที่ทำให้ชื่อ กับ นามกุลแยกออกจากกันได้ นั่นคือ ช่องว่าง ระหว่าง ชื่อ และ นามสกุล  เราจึงใช้จุดนี้แหละ เป็นตัวช่วย

ตัวอย่างเช่น   ตาราง MY_GIGS มีคอลัมน์  full_name เก็บ ชื่อ-นามสกุล เอาไว้ต่อกัน

 



เราใช้ SQL นี้ แยก ชื่อ กับ นามกุล ออกจากัน โดยอาศัยฟังก์ชั่น  Substr() และ Instr() มาช่วย

 

 

 

คำอธิบาย
Instr ()  เป็นฟังก์ชั่นในการหา ว่าคำที่เราสนใจ ในที่นี้ คือ ช่องว่าง ระหว่าง ชื่อกับนามสกุล เป็นคำที่เท่าไหร่ในคอลัมน์ full_name
Substr () เป็น ฟังก์ชั่น ในการ ตัดคำ  ของคอลัมน์ full_name  โดย ชื่อ จะเริ่มต้นตัดเอาคำแรกของ ข้อมูล จนถึง คำสุดท้ายก่อนช่องว่าง มาเป็น FName  และ เอาคำแรกหลังจาก ช่องว่าง จนถึงคำสุดท้ายของข้อมูล มาเป็น LName