En av de vanligste urene dataene du kan støte på, er den der dataene inneholder innledende nuller i numeriske eller strengdata. Dette kan skje når du importerer data fra eksterne kilder eller bruker automatiserte datainnsamlingsteknikker.
Førende nuller i data kan være problematisk, spesielt når man arbeider med numeriske verdier som er lagret som strenger.
I denne veiledningen vil vi diskutere alle metodene og teknikkene vi kan bruke for å fjerne eventuelle innledende nuller i et SQL-datasett.
Eksempel på dataoppsett
Før vi dykker ned i applikasjonene og eksemplene, la oss starte med å sette opp et grunnleggende datasett som vil bidra til å demonstrere forekomsten av innledende nuller.
Vurder en ansatts tabell med dataene som vist i følgende:
OPPRETT BORD Ansatt (
Ansatt-ID VARCHAR(10)
);
SETT INN I Verdier for ansatt (medarbeider-ID).
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
I dette tilfellet er ansatt-ID-en av typen 'varchar'. Verdiene inneholder imidlertid innledende nuller.
La oss utforske metodene vi kan bruke for å fjerne disse innledende nullene.
Bruke CAST-funksjonen
En av metodene for å fjerne eventuelle innledende nuller er å konvertere strengen til en numerisk type. Vi kan bruke en funksjon som CAST eller CONVERT() som vist i følgende eksempel:
VELG CAST(Ansatt-ID AS INT) AS Ansatt-IDUtennullerFRA Ansatt;
Dette skal fungere automatisk i databaser som støtter cast()-funksjonen.
I databaser som MySQL kan det imidlertid hende du må portere funksjonen til trimfunksjonen for å faktisk fjerne de innledende nullene. Du kan deretter konvertere verdiene til numerisk type som vist i følgende eksempel:
SELECT CAST(TRIM(LEADING '0' FROM EmployeeID) AS SIGNED) AS EmployeeIDUtenZerosFRA Ansatt;
Den resulterende utgangen er som følger:
Bruke LTRIM-funksjonen
Den vanligste og kraftigste metoden du kan bruke for å fjerne innledende nuller, er å bruke LTRIM()-funksjonen. Denne funksjonen lar oss fjerne eventuelle ledende mellomromstegn i en gitt streng.
Det tillater oss imidlertid ikke å spesifisere det spesifikke tegnet vi ønsker å fjerne. I vårt tilfelle kan vi bruke det ved å fjerne de innledende nullene fra en streng.
Et eksempel er som følger:
VELG LTRIM(ansatt-ID, '0') AS ansatt-IDUtennullerFRA Ansatt;
Dette bør fjerne de innledende nulltegnene fra strengen.
Konklusjon
I denne opplæringen utforsket vi to hovedmetoder som vi kan bruke for å fjerne eventuelle innledende nulltegn fra en gitt streng/kolonne.