Een van de meest voorkomende onzuivere gegevens die u kunt tegenkomen, is die waarbij de gegevens voorloopnullen bevatten in numerieke of tekenreeksgegevens. Dit kan gebeuren bij het importeren van de gegevens uit externe bronnen of bij het gebruik van geautomatiseerde gegevensverzamelingstechnieken.
Voorloopnullen in gegevens kunnen problematisch zijn, vooral als het gaat om numerieke waarden die als tekenreeksen zijn opgeslagen.
In deze handleiding bespreken we alle methoden en technieken die we kunnen gebruiken om voorloopnullen binnen een SQL-dataset te verwijderen.
Voorbeeldgegevens instellen
Voordat we ingaan op de toepassingen en voorbeelden, moeten we eerst een basisdataset opzetten die zal helpen het voorkomen van voorloopnullen aan te tonen.
Beschouw een werknemerstabel met de gegevens zoals hieronder weergegeven:
TABEL MAKEN Medewerker (
WerknemerID VARCHAR(10)
);
INSERT IN WAARDEN VOOR WAARDEN VOOR WERKNEMER (EmployeeID).
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
In dit geval is de werknemers-ID van het type “varchar”. De waarden bevatten echter voorloopnullen.
Laten we eens kijken naar de methoden die we kunnen gebruiken om deze voorloopnullen te verwijderen.
De CAST-functie gebruiken
Een van de methoden om voorloopnullen te verwijderen is door de tekenreeks naar een numeriek type te converteren. We kunnen een functie zoals CAST of CONVERT() gebruiken, zoals gedemonstreerd in het volgende voorbeeld:
SELECTEER CAST(WerknemerID AS INT) ALS WerknemerIDZonderNulVAN Medewerker;
Dit zou automatisch moeten werken in databases die de functie cast() ondersteunen.
In databases zoals MySQL moet u de functie echter mogelijk overzetten naar de trimfunctie om de voorloopnullen daadwerkelijk te verwijderen. U kunt de waarden vervolgens omzetten in een numeriek type, zoals wordt gedemonstreerd in het volgende voorbeeld:
SELECT CAST(TRIM(LEADING '0' FROM EmployeeID) AS SIGNED) AS EmployeeIDWithoutNullenVAN Medewerker;
De resulterende uitvoer is als volgt:
De LTRIM-functie gebruiken
De meest gebruikelijke en krachtige methode die u kunt gebruiken om voorloopnullen te verwijderen, is het gebruik van de functie LTRIM(). Met deze functie kunnen we alle voorafgaande witruimtetekens in een bepaalde string verwijderen.
Het staat ons echter niet toe om het specifieke teken te specificeren dat we willen verwijderen. In ons geval kunnen we dit gebruiken door de voorloopnullen uit een string te verwijderen.
Een voorbeeld is als volgt:
SELECTEER LTRIM(WerknemerID, '0') AS WerknemerIDZonderNulVAN Medewerker;
Dit zou de voorloopnultekens uit de string moeten verwijderen.
Conclusie
In deze zelfstudie hebben we twee hoofdmethoden onderzocht die we kunnen gebruiken om eventuele voorloopnullen uit een bepaalde tekenreeks/kolom te verwijderen.