Stosowanie funkcji do czyszczenia ciągów znaków
W tym kursie będziemy korzystać ze zbioru danych zawierającego 5000 rekordów o mandatach parkingowych w Nowym Jorku, przechowywanych w tabeli parking_violation.
Trwają prace nad przeprojektowaniem usługi, która umożliwia doręczenie fizycznej kopii mandatu osobom ukaranym. Aby wydruk informacji na formularzu był poprawnie sformatowany, niektóre pola muszą zostać zmienione względem ich reprezentacji w bazie danych. Zmiany są następujące:
- Aby tekst na formularzu był odpowiednio wyrównany, wartości w kolumnie
violation_locationmuszą mieć dokładnie 4 znaki. - Wszystkie wartości
P-U(pickup) w kolumnievehicle_body_typepowinny zostać zastąpione ogólną wartościąTRK. - W kolumnie
street_nametylko pierwsza litera każdego słowa powinna być wielką literą.
Do wprowadzenia tych zmian wykorzystamy funkcje LPAD(), REPLACE() oraz INITCAP().
To ćwiczenie jest częścią kursu
Czyszczenie danych w bazach PostgreSQL
Instrukcje do ćwiczenia
- Użyj funkcji
LPAD(), aby dopisać'0'na początku wartości w kolumnieviolation_location, jeśli mają mniej niż 4 cyfry. - Użyj funkcji
REPLACE(), aby zastąpić'P-U'wartością'TRK'w kolumnievehicle_body_type. - Użyj funkcji
INITCAP(), aby w kolumniestreet_nametylko pierwsza litera każdego słowa była wielką literą.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
SELECT
-- Add 0s to ensure violation_location is 4 characters in length
___(___, ___, ___) AS violation_location,
-- Replace 'P-U' with 'TRK' in vehicle_body_type column
___(___, ___, ___) AS vehicle_body_type,
-- Ensure only first letter capitalized in street_name
___(___) AS ___
FROM
parking_violation;