Ta bort de ledande nollorna i SQL

Ta Bort De Ledande Nollorna I Sql



När man hanterar verkliga data är det ofta rörigt och smutsigt. Detta innebär att den kan innehålla onödiga eller ogiltiga data som kan hindra verksamheten och de uppgifter som vi vill utföra på den.

En av de vanligaste orena data som du kan stöta på är den där data innehåller inledande nollor i numerisk eller strängdata. Detta kan inträffa när du importerar data från externa källor eller använder de automatiska datainsamlingsteknikerna.

Inledande nollor i data kan vara problematiskt, särskilt när man hanterar numeriska värden som lagras som strängar.







I den här guiden kommer vi att diskutera alla metoder och tekniker som vi kan använda för att ta bort eventuella inledande nollor i en SQL-datauppsättning.



Exempel på datainställning

Innan vi dyker in i applikationerna och exemplen, låt oss börja med att sätta upp en grundläggande datauppsättning som hjälper till att demonstrera förekomsten av inledande nollor.



Betrakta en anställds tabell med uppgifterna som visas i följande:





SKAPA BORD Anställd (
Anställd-ID VARCHAR(10)
);
INSERT I Employee (EmployeeID) VÄRDEN
('00123'),
('00456'),
('00789'),
('01012'),
('01567');

I det här fallet är anställd-ID av typen 'varchar'. Värdena innehåller dock inledande nollor.

Låt oss utforska metoderna som vi kan använda för att ta bort dessa inledande nollor.



Använda CAST-funktionen

En av metoderna för att ta bort eventuella inledande nollor är att konvertera strängen till en numerisk typ. Vi kan använda en funktion som CAST eller CONVERT() som visas i följande exempel:

VÄLJ CAST(Anställd-ID SOM INT) SOM Anställd-IDUtanNollor
FRÅN Anställd;

Detta bör fungera automatiskt i databaser som stöder cast()-funktionen.

Men i databaser som MySQL kan du behöva porta funktionen till trimfunktionen för att faktiskt ta bort de inledande nollorna. Du kan sedan konvertera värdena till numerisk typ som visas i följande exempel:

SELECT CAST(TRIM(LEADING '0' FROM EmployeeID) AS SIGNED) AS EmployeeIDUtanNollor
FRÅN Anställd;

Resultatet är som följer:

Använda LTRIM-funktionen

Den vanligaste och mest kraftfulla metoden som du kan använda för att ta bort inledande nollor är att använda LTRIM()-funktionen. Den här funktionen låter oss ta bort alla ledande blanktecken i en given sträng.

Det tillåter oss dock inte att specificera den specifika karaktären som vi vill ta bort. I vårt fall kan vi använda det genom att ta bort de inledande nollorna från en sträng.

Ett exempel är följande:

VÄLJ LTRIM(Anställd-ID, '0') SOM Anställd-IDUtanNollor
FRÅN Anställd;

Detta bör ta bort de inledande nolltecken från strängen.

Slutsats

I den här handledningen utforskade vi två huvudmetoder som vi kan använda för att ta bort alla inledande nolltecken från en given sträng/kolumn.