Jednymi z najczęstszych nieczystych danych, z którymi możesz się spotkać, są te, w których dane liczbowe lub łańcuchowe zawierają zera na początku. Może się to zdarzyć podczas importu danych ze źródeł zewnętrznych lub korzystania z technik automatycznego gromadzenia danych.
Zera wiodące w danych mogą być problematyczne, szczególnie w przypadku wartości numerycznych przechowywanych w postaci ciągów znaków.
W tym przewodniku omówimy wszystkie metody i techniki, które możemy zastosować w celu usunięcia zer wiodących w zestawie danych SQL.
Przykładowa konfiguracja danych
Zanim zagłębimy się w zastosowania i przykłady, zacznijmy od skonfigurowania podstawowego zbioru danych, który pomoże zademonstrować występowanie zer wiodących.
Rozważmy tabelę pracownika zawierającą dane pokazane poniżej:
UTWÓRZ TABELI Pracownik (
Identyfikator pracownika VARCHAR(10)
);
WSTAW WARTOŚCI pracownika (EmployeeID).
(„00123”),
(„00456”),
(„00789”),
(„01012”),
(„01567”);
W tym przypadku identyfikator pracownika jest typu „varchar”. Jednakże wartości zawierają zera wiodące.
Przyjrzyjmy się metodom, których możemy użyć do usunięcia zer wiodących.
Korzystanie z funkcji Rzutuj
Jedną z metod usuwania zer wiodących jest konwersja ciągu na typ numeryczny. Możemy użyć funkcji takich jak CAST lub CONVERT(), jak pokazano w poniższym przykładzie:
WYBIERZ CAST (ID Pracownika JAKO INT) JAKO Identyfikator PracownikaBezZeroOD Pracownika;
Powinno to działać automatycznie w bazach danych obsługujących funkcję cast().
Jednak w bazach danych takich jak MySQL może być konieczne przeniesienie tej funkcji do funkcji przycinania, aby faktycznie usunąć zera początkowe. Następnie możesz przekonwertować wartości na typ liczbowy, jak pokazano w poniższym przykładzie:
WYBIERZ CAST(TRIM(POCZĄTEK „0” Z Identyfikatora Pracownika) JAKO PODPISANY) JAKO Identyfikator PracownikaBezZerosOD Pracownika;
Wynikowy wynik jest następujący:
Korzystanie z funkcji LTRIM
Najpopularniejszą i najskuteczniejszą metodą usuwania zer wiodących jest użycie funkcji LTRIM(). Ta funkcja pozwala nam usunąć dowolne początkowe białe znaki w danym ciągu.
Nie pozwala nam jednak określić konkretnego znaku, który chcemy usunąć. W naszym przypadku możemy go użyć, usuwając zera wiodące z ciągu.
Przykład jest następujący:
WYBIERZ LTRIM(ID pracownika, '0') JAKO ID pracownikaBezZeroOD Pracownika;
Powinno to usunąć początkowe znaki zerowe z ciągu.
Wniosek
W tym samouczku omówiliśmy dwie główne metody, których możemy użyć do usunięcia dowolnych wiodących znaków zerowych z danego ciągu/kolumny.