เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เปรียบเทียบชื่อด้วย DIFFERENCE()

ในแบบฝึกหัดก่อนหน้า คุณได้ใช้ SOUNDEX() เพื่อตรวจสอบชื่อของนักสถิติจากตาราง flight_statistics

ครั้งนี้จะทำสิ่งที่คล้ายกัน แต่ใช้ฟังก์ชัน DIFFERENCE() แทน โดย DIFFERENCE() จะคืนค่า 4 เมื่อสองสตริงมีเสียงที่คล้ายหรือเหมือนกัน และคืนค่า 0 เมื่อแทบไม่มีความคล้ายคลึงกันเลย

หากผลลัพธ์ของ DIFFERENCE() ระหว่างสองสตริงเป็น 4 แต่ข้อความที่เปรียบเทียบกลับต่างกัน แสดงว่าพบข้อมูลที่ต้องทำความสะอาด

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำความสะอาดข้อมูลในฐานข้อมูล SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เลือกค่าที่ไม่ซ้ำกันของคอลัมน์ statistician_name และ statistician_surname จาก S1
  • Inner join ตาราง flight_statistics ในชื่อแทน S2 โดยจับคู่ชื่อและนามสกุลที่มีเสียงคล้ายกัน เฉพาะกรณีที่ค่า DIFFERENCE ระหว่างคอลัมน์ของแต่ละตารางเท่ากับ 4
  • กรองเฉพาะแถวที่คอลัมน์ statistician_name และ statistician_surname ใน S1 และ S2 มีค่าต่างกัน

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

SELECT 
    -- First name and surnames of the statisticians
	DISTINCT S1.___, S1.___
-- Join flight_statistics with itself
FROM ___ S1 INNER JOIN ___ S2 
	-- The DIFFERENCE of the first name and surname has to be equals to 4
	ON ___(S1.___, S2.___) = 4
	AND ___(S1.___, S2.___) = 4
-- The texts of the first name or the texts of the surname have to be different
WHERE S1.___ <> S2.___
	OR S1.___ <> S2.___
แก้ไขและรันโค้ด