Una dintre cele mai frecvente date necurate pe care le puteți întâlni este cea în care datele conțin zerouri de început în date numerice sau șir. Acest lucru se poate întâmpla la importul datelor din surse externe sau la utilizarea tehnicilor de colectare automată a datelor.
Zerourile inițiale în date pot fi problematice, mai ales atunci când aveți de-a face cu valori numerice care sunt stocate ca șiruri.
În acest ghid, vom discuta toate metodele și tehnicile pe care le putem folosi pentru a elimina orice zerouri de început dintr-un set de date SQL.
Eșantion de configurare a datelor
Înainte de a ne aprofunda în aplicații și exemple, să începem prin a configura un set de date de bază care va ajuta la demonstrarea apariției zerourilor înainte.
Luați în considerare tabelul unui angajat cu datele prezentate în următoarele:
CREATE TABLE Angajat (
EmployeeID VARCHAR(10)
);
INSERT INTO Employee (EmployeeID) VALORI
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
În acest caz, ID-ul angajatului este de tip „varchar”. Cu toate acestea, valorile conțin zerouri de început.
Să explorăm metodele pe care le putem folosi pentru a elimina aceste zerouri de început.
Utilizarea funcției CAST
Una dintre metodele de eliminare a oricăror zerouri de început este conversia șirului într-un tip numeric. Putem folosi o funcție precum CAST sau CONVERT() așa cum este demonstrat în următorul exemplu:
SELECTAȚI CAST(EmployeeID AS INT) AS EmployeeIDWithoutZerosDE LA Angajat;
Acest lucru ar trebui să funcționeze automat în bazele de date care acceptă funcția cast().
Cu toate acestea, în bazele de date precum MySQL, poate fi necesar să portați funcția la funcția de tăiere pentru a elimina efectiv zerourile de început. Apoi puteți converti valorile în tip numeric, așa cum este demonstrat în următorul exemplu:
SELECTARE CAST(TRIM(LEADING '0' FROM EmployeeID) AS SIGNAT) CA EmployeeIDWithoutZerosDE LA Angajat;
Rezultatul rezultat este după cum urmează:
Utilizarea funcției LTRIM
Cea mai comună și puternică metodă pe care o puteți folosi pentru a elimina orice zerouri de început este utilizarea funcției LTRIM(). Această funcție ne permite să eliminăm orice caractere de spații albe de început dintr-un șir dat.
Cu toate acestea, nu ne permite să specificăm caracterul specific pe care dorim să-l eliminăm. În cazul nostru, îl putem folosi prin eliminarea zerourilor de început dintr-un șir.
Un exemplu este următorul:
SELECTAȚI LTRIM(EmployeeID, '0') AS EmployeeIDWithoutZerosDE LA Angajat;
Acest lucru ar trebui să elimine primele zero caractere din șir.
Concluzie
În acest tutorial, am explorat două metode principale pe care le putem folosi pentru a elimina orice caractere zero de început dintr-un șir/coloană dat.