Az egyik leggyakoribb tisztátalan adat, amellyel találkozhat, az, ahol az adatok numerikus vagy karakterlánc-adatokban kezdő nullákat tartalmaznak. Ez akkor fordulhat elő, ha az adatokat külső forrásból importálja vagy automatizált adatgyűjtési technikákat használ.
A kezdő nullák az adatokban problémát okozhatnak, különösen akkor, ha karakterláncként tárolt numerikus értékekkel foglalkozunk.
Ebben az útmutatóban megvitatjuk az összes olyan módszert és technikát, amellyel eltávolíthatjuk a kezdő nullákat az SQL-adatkészletből.
Minta adatbeállítás
Mielőtt belemerülnénk az alkalmazásokba és a példákba, kezdjük egy alapadatkészlet felállításával, amely segít bemutatni a kezdő nullák előfordulását.
Tekintsük egy alkalmazott táblázatát a következő adatokkal:
TÁBLÁZAT LÉTREHOZÁSA Alkalmazott (
Munkavállalói azonosító VARCHAR(10)
);
INSERT INTO Employee (EmployeeID) VALUES
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
Ebben az esetben az alkalmazotti azonosító „varchar” típusú. Az értékek azonban kezdő nullákat tartalmaznak.
Vizsgáljuk meg azokat a módszereket, amelyek segítségével eltávolíthatjuk ezeket a kezdő nullákat.
A CAST funkció használata
A kezdő nullák eltávolításának egyik módja a karakterlánc numerikus típussá alakítása. Használhatunk olyan függvényt, mint a CAST vagy a CONVERT(), amint az a következő példában látható:
SELECT CAST(EmployeeID AS INT) AS EmployeeIDWithoutZerosFROM alkalmazott;
Ennek automatikusan működnie kell azokban az adatbázisokban, amelyek támogatják a cast() függvényt.
Azonban az olyan adatbázisokban, mint például a MySQL, előfordulhat, hogy a függvényt a trim függvényre kell portolni a kezdő nullák tényleges eltávolításához. Ezután konvertálhatja az értékeket numerikus típusokká, amint azt a következő példa bemutatja:
SELECT CAST(TRIM(VEZETÉS '0' FROM EmployeeID) ALÁÍRVA) AS EmployeeIDWithoutzerosFROM alkalmazott;
A kapott kimenet a következő:
Az LTRIM funkció használata
A legáltalánosabb és leghatékonyabb módszer a kezdő nullák eltávolítására az LTRIM() függvény. Ez a funkció lehetővé teszi, hogy eltávolítsunk minden kezdő szóközt egy adott karakterláncból.
Ez azonban nem teszi lehetővé, hogy meghatározzuk az eltávolítani kívánt karaktert. Esetünkben úgy használhatjuk, hogy eltávolítjuk a bevezető nullákat egy karakterláncból.
Egy példa a következő:
SELECT LTRIM(alkalmazotti azonosító, '0') AS alkalmazott azonosító nulla nélkülFROM alkalmazott;
Ennek el kell távolítania a bevezető nulla karaktereket a karakterláncból.
Következtetés
Ebben az oktatóanyagban két fő módszert vizsgáltunk meg, amelyek segítségével eltávolíthatunk minden kezdő nulla karaktert egy adott karakterláncból/oszlopból.