Fjern de førende nuller i SQL

Fjern De Forende Nuller I Sql



Når man beskæftiger sig med data fra den virkelige verden, er det ofte rodet og beskidt. Det betyder, at den kan indeholde unødvendige eller ugyldige data, der kan hindre de operationer og de opgaver, vi ønsker at udføre på den.

En af de mest almindelige urene data, du kan støde på, er den, hvor dataene indeholder foranstillede nuller i numeriske eller strengdata. Dette kan forekomme, når du importerer data fra eksterne kilder eller bruger de automatiserede dataindsamlingsteknikker.

Førende nuller i data kan være problematisk, især når man har at gøre med numeriske værdier, der er gemt som strenge.







I denne vejledning vil vi diskutere alle de metoder og teknikker, vi kan bruge til at fjerne eventuelle foranstillede nuller i et SQL-datasæt.



Eksempel på dataopsætning

Inden vi dykker ned i applikationerne og eksemplerne, lad os starte med at opsætte et grundlæggende datasæt, der vil hjælpe med at demonstrere forekomsten af ​​indledende nuller.



Overvej en medarbejders tabel med dataene som vist i følgende:





OPRET TABEL Medarbejder (
Medarbejder-ID VARCHAR(10)
);
INDSÆT I VÆRDIER for medarbejder (medarbejder-ID).
('00123'),
('00456'),
('00789'),
('01012'),
('01567');

I dette tilfælde er medarbejder-id'et af typen 'varchar'. Værdierne indeholder dog indledende nuller.

Lad os undersøge de metoder, vi kan bruge til at fjerne disse foranstillede nuller.



Brug af CAST-funktionen

En af metoderne til at fjerne eventuelle foranstillede nuller er ved at konvertere strengen til en numerisk type. Vi kan bruge en funktion som CAST eller CONVERT() som vist i følgende eksempel:

VÆLG CAST(Medarbejder-ID SOM INT) SOM Medarbejder-IDUdenNuller
FRA Medarbejder;

Dette burde fungere automatisk i databaser, der understøtter cast()-funktionen.

I databaser som MySQL kan det dog være nødvendigt at portere funktionen til trimfunktionen for rent faktisk at fjerne de foranstillede nuller. Du kan derefter konvertere værdierne til numerisk type som vist i følgende eksempel:

SELECT CAST(TRIM(LEADING '0' FROM EmployeeID) AS SIGNED) AS EmployeeIDUdenNuller
FRA Medarbejder;

Det resulterende output er som følger:

Brug af LTRIM-funktionen

Den mest almindelige og effektive metode, du kan bruge til at fjerne eventuelle foranstillede nuller, er at bruge funktionen LTRIM() . Denne funktion giver os mulighed for at fjerne eventuelle mellemrumstegn i en given streng.

Det tillader os dog ikke at specificere det specifikke tegn, som vi ønsker at fjerne. I vores tilfælde kan vi bruge det ved at fjerne de foranstillede nuller fra en streng.

Et eksempel er som følger:

VÆLG LTRIM(Medarbejder-ID, '0') SOM Medarbejder-IDUdenNul
FRA Medarbejder;

Dette bør fjerne de foranstillede nultegn fra strengen.

Konklusion

I denne øvelse undersøgte vi to hovedmetoder, som vi kan bruge til at fjerne alle indledende nul-tegn fra en given streng/kolonne.