Porównywanie nazw za pomocą DIFFERENCE()
W poprzednim ćwiczeniu używałeś(-aś) funkcji SOUNDEX() do sprawdzania imion i nazwisk statystyków z tabeli flight_statistics.
Tym razem chcesz zrobić coś podobnego, ale z użyciem funkcji DIFFERENCE(). Funkcja DIFFERENCE() zwraca wartość 4, gdy dwa ciągi znaków brzmią podobnie lub identycznie, natomiast 0, gdy podobieństwo jest niewielkie lub żadne.
Jeśli wynik DIFFERENCE() dla dwóch ciągów wynosi 4, ale porównywane teksty różnią się od siebie, masz sygnał, które dane wymagają oczyszczenia.
To ćwiczenie jest częścią kursu
Czyszczenie danych w bazach danych SQL Server
Instrukcje do ćwiczenia
- Wybierz unikalne wartości kolumn
statistician_nameistatistician_surnamez tabeliS1. - Wykonaj złączenie wewnętrzne (INNER JOIN) tabeli
flight_statisticsjakoS2na podstawie podobnie brzmiących imion i nazwisk – dla rekordów, w których wartośćDIFFERENCEmiędzy odpowiadającymi kolumnami obu tabel wynosi 4. - Odfiltruj rekordy, w których kolumny
statistician_nameistatistician_surnameróżnią się od siebie odpowiednio w tabelachS1iS2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.___