Eden najpogostejših nečistih podatkov, na katere lahko naletite, je tisti, pri katerem podatki vsebujejo vodilne ničle v številskih ali nizovih podatkih. To se lahko zgodi pri uvozu podatkov iz zunanjih virov ali uporabi avtomatiziranih tehnik zbiranja podatkov.
Začetne ničle v podatkih so lahko problematične, zlasti pri obravnavanju številskih vrednosti, ki so shranjene kot nizi.
V tem priročniku bomo razpravljali o vseh metodah in tehnikah, ki jih lahko uporabimo za odstranitev začetnih ničel v naboru podatkov SQL.
Vzorčna nastavitev podatkov
Preden se poglobimo v aplikacije in primere, začnimo z nastavitvijo osnovnega nabora podatkov, ki bo pomagal prikazati pojav začetnih ničel.
Razmislite o tabeli zaposlenih s podatki, kot je prikazano v nadaljevanju:
USTVARI TABELO Zaposleni (
EmployeeID VARCHAR(10)
);
INSERT INTO Employee (EmployeeID) VREDNOSTI
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
V tem primeru je ID zaposlenega tipa »varchar«. Vendar pa vrednosti vsebujejo vodilne ničle.
Raziščimo metode, s katerimi lahko odstranimo te vodilne ničle.
Uporaba funkcije CAST
Eden od načinov za odstranitev začetnih ničel je pretvorba niza v številski tip. Uporabimo lahko funkcijo, kot je CAST ali CONVERT(), kot je prikazano v naslednjem primeru:
IZBERI CAST(EmployeeID AS INT) AS EmployeeIDWithoutZerosOD zaposlenega;
To bi moralo delovati samodejno v zbirkah podatkov, ki podpirajo funkcijo cast().
Vendar pa boste v podatkovnih zbirkah, kot je MySQL, morda morali prenesti funkcijo na trim funkcijo, da dejansko odstranite vodilne ničle. Nato lahko vrednosti pretvorite v številsko vrsto, kot je prikazano v naslednjem primeru:
IZBERI CAST(OBREZI(ZAČE '0' OD EmployeeID) KOT PODPISANO) KOT EmployeeIDWithoutZerosOD zaposlenega;
Rezultat je naslednji:
Uporaba funkcije LTRIM
Najpogostejša in zmogljiva metoda, ki jo lahko uporabite za odstranitev začetnih ničel, je uporaba funkcije LTRIM(). Ta funkcija nam omogoča, da odstranimo vse vodilne presledke v danem nizu.
Vendar nam ne dovoljuje, da določimo določen znak, ki ga želimo odstraniti. V našem primeru ga lahko uporabimo tako, da iz niza odstranimo vodilne ničle.
Primer je naslednji:
IZBERI LTRIM(EmployeeID, '0') AS EmployeeIDWithoutZerosOD zaposlenega;
S tem bi morali iz niza odstraniti znake začetne ničle.
Zaključek
V tej vadnici smo raziskali dve glavni metodi, ki ju lahko uporabimo za odstranitev začetnih znakov ničle iz danega niza/stolpca.