Yksi yleisimmistä epäpuhtaista tiedoista, joita saatat kohdata, on se, jossa data sisältää etunollia numeerisissa tai merkkijonotiedoissa. Tämä voi tapahtua, kun tietoja tuodaan ulkoisista lähteistä tai käytetään automaattisia tiedonkeruutekniikoita.
Tietojen etunollien käyttäminen voi olla ongelmallista etenkin silloin, kun käsitellään merkkijonoina tallennettuja numeerisia arvoja.
Tässä oppaassa käsittelemme kaikkia menetelmiä ja tekniikoita, joita voimme käyttää SQL-tietojoukon etunollien poistamiseen.
Esimerkkitietojen määritys
Ennen kuin sukeltaamme sovelluksiin ja esimerkkeihin, aloitetaan perustamalla perustietojoukko, joka auttaa osoittamaan etunollien esiintymisen.
Harkitse työntekijän taulukkoa, jossa on seuraavat tiedot:
LUO TAULUKKO Työntekijä (
Työntekijätunnus VARCHAR(10)
);
INSERT INTO Employee (EmployeeID) ARVOT
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
Tässä tapauksessa työntekijätunnus on 'varchar'-tyyppinen. Arvot sisältävät kuitenkin etunollia.
Tutkitaanpa menetelmiä, joilla voimme poistaa nämä etunollat.
CAST-toiminnon käyttäminen
Yksi tapa poistaa kaikki etunollat on muuntaa merkkijono numeeriseksi. Voimme käyttää funktiota, kuten CAST tai CONVERT(), kuten seuraavassa esimerkissä esitetään:
SELECT CAST(Työntekijätunnus AS INT) AS TyöntekijäIDWithoutZerosFROM Työntekijä;
Tämän pitäisi toimia automaattisesti tietokannoissa, jotka tukevat cast()-toimintoa.
Tietokannassa, kuten MySQL, saatat kuitenkin joutua siirtämään funktion trimmausfunktioon, jotta etunollat todella poistetaan. Voit sitten muuntaa arvot numeerisiksi tyypeiksi seuraavan esimerkin mukaisesti:
SELECT CAST(TRIM(JOHTAVA '0' Työntekijätunnuksesta) Allekirjoitettuna) Työntekijätunnukseksi ilman nolliaFROM Työntekijä;
Tuloksena oleva tulos on seuraava:
LTRIM-toiminnon käyttäminen
Yleisin ja tehokkain tapa, jolla voit poistaa etunollat, on LTRIM()-funktion käyttö. Tämän toiminnon avulla voimme poistaa kaikki johtavat välilyönnit annetusta merkkijonosta.
Se ei kuitenkaan salli meidän määrittää tiettyä merkkiä, jonka haluamme poistaa. Meidän tapauksessamme voimme käyttää sitä poistamalla alkunollat merkkijonosta.
Esimerkki on seuraava:
SELECT LTRIM(Työntekijätunnus, '0') AS Työntekijätunnus ilman nolliaFROM Työntekijä;
Tämän pitäisi poistaa johtavat nollamerkit merkkijonosta.
Johtopäätös
Tässä opetusohjelmassa tutkimme kahta päämenetelmää, joiden avulla voimme poistaa kaikki johtavat nollamerkit tietystä merkkijonosta/sarakkeesta.