อย่างที่เราทราบดีว่าฟังก์ชัน CONCAT() จะคืนค่า NULL หากอาร์กิวเมนต์ใดๆ เป็น NULL แต่ฟังก์ชัน CONCAT_WS() จะคืนค่า NULL เฉพาะในกรณีที่อาร์กิวเมนต์แรกคือ ตัวคั่นเป็น NULL และจะละเว้นอื่นๆ โมฆะ. เราสามารถพูดได้ว่านี่เป็นข้อได้เปรียบของฟังก์ชัน CONCAT_WS() เหนือฟังก์ชัน CONCAT() เมื่อเราต้องการเชื่อมค่าจากคอลัมน์และคอลัมน์ใดๆ ที่มีค่า NULL เป็นค่าของมัน เพื่อให้เข้าใจ เราพิจารณาตัวอย่างจากตาราง 'Student_name; ซึ่งมีข้อมูลดังต่อไปนี้ −
mysql> Select * from Student_Name; +---------+-------+---------+ | FName | Mname | Lname | +---------+-------+---------+ | Rahul | NULL | Singh | | Gaurav | Kumar | NULL | | Harshit | NULL | Khurana | | Yash | Pal | Sharma | +---------+-------+---------+ 4 rows in set (0.00 sec)
ตอนนี้ สมมติว่าถ้าเราต้องการเชื่อมค่าของคอลัมน์ Fname, Mname และ Lname ต่อไปนี้จะเป็นผลลัพธ์ -
mysql> Select CONCAT(Fname,Mname,Lname)AS Name from Student_Name; +---------------+ | Name | +---------------+ | NULL | | NULL | | NULL | | YashPalSharma | +---------------+ 4 rows in set (0.00 sec)
แต่ถ้าเราจะใช้ฟังก์ชัน CONCAT_WS() ก็จะไม่สนใจค่า NULL เหมือนที่ทำในแบบสอบถามต่อไปนี้ -
mysql> Select CONCAT_WS(' ',Fname,Mname,Lname)AS Name from student_name; +-----------------+ | Name | +-----------------+ | Rahul Singh | | Gaurav Kumar | | Harshit Khurana | | Yash Pal Sharma | +-----------------+ 4 rows in set (0.00 sec)