Ένα από τα πιο κοινά ακάθαρτα δεδομένα που μπορεί να συναντήσετε είναι αυτό όπου τα δεδομένα περιέχουν μηδενικά αρχικά σε αριθμητικά δεδομένα ή δεδομένα συμβολοσειρών. Αυτό μπορεί να συμβεί κατά την εισαγωγή των δεδομένων από εξωτερικές πηγές ή τη χρήση τεχνικών αυτοματοποιημένης συλλογής δεδομένων.
Η εισαγωγή μηδενικών στα δεδομένα μπορεί να είναι προβληματική, ειδικά όταν έχουμε να κάνουμε με αριθμητικές τιμές που αποθηκεύονται ως συμβολοσειρές.
Σε αυτόν τον οδηγό, θα συζητήσουμε όλες τις μεθόδους και τις τεχνικές που μπορούμε να χρησιμοποιήσουμε για να αφαιρέσουμε τυχόν μηδενικά αρχικά μέσα σε ένα σύνολο δεδομένων SQL.
Δείγμα ρύθμισης δεδομένων
Πριν βουτήξουμε στις εφαρμογές και τα παραδείγματα, ας ξεκινήσουμε δημιουργώντας ένα βασικό σύνολο δεδομένων που θα σας βοηθήσει να δείξουμε την εμφάνιση μηδενικών αρχών.
Εξετάστε τον πίνακα ενός υπαλλήλου με τα δεδομένα όπως φαίνεται παρακάτω:
Υπάλληλος ΔΗΜΙΟΥΡΓΗΣΗΣ ΠΙΝΑΚΑ (
EmployeeID VARCHAR(10)
)
INSERT INTO Employee (EmployeeID) ΤΙΜΕΣ
('00123'),
('00456'),
('00789'),
('01012'),
('01567');
Σε αυτήν την περίπτωση, το αναγνωριστικό υπαλλήλου είναι τύπου «varchar». Ωστόσο, οι τιμές περιέχουν μηδενικά.
Ας εξερευνήσουμε τις μεθόδους που μπορούμε να χρησιμοποιήσουμε για να αφαιρέσουμε αυτά τα μηδενικά.
Χρήση της λειτουργίας CAST
Μία από τις μεθόδους αφαίρεσης οποιωνδήποτε μηδενικών αρχών είναι η μετατροπή της συμβολοσειράς σε αριθμητικό τύπο. Μπορούμε να χρησιμοποιήσουμε μια συνάρτηση όπως CAST ή CONVERT() όπως φαίνεται στο ακόλουθο παράδειγμα:
SELECT CAST(EmployeeID AS INT) AS EmployeeIDWithoutZerosΑΠΟ Υπάλληλο?
Αυτό θα πρέπει να λειτουργεί αυτόματα σε βάσεις δεδομένων που υποστηρίζουν τη συνάρτηση cast().
Ωστόσο, σε βάσεις δεδομένων όπως η MySQL, ίσως χρειαστεί να μεταφέρετε τη συνάρτηση στη συνάρτηση περικοπής για να αφαιρέσετε πραγματικά τα μηδενικά. Στη συνέχεια, μπορείτε να μετατρέψετε τις τιμές σε αριθμητικό τύπο όπως φαίνεται στο ακόλουθο παράδειγμα:
SELECT CAST(TRIM(LEADING '0' FROM EmployeeID) AS SIGNED) AS EmployeeIDWithoutZerosΑΠΟ Υπάλληλο?
Η έξοδος που προκύπτει είναι η εξής:
Χρήση της συνάρτησης LTRIM
Η πιο κοινή και ισχυρή μέθοδος που μπορείτε να χρησιμοποιήσετε για να αφαιρέσετε τυχόν μηδενικά στην αρχή είναι η χρήση της συνάρτησης LTRIM(). Αυτή η συνάρτηση μας επιτρέπει να αφαιρέσουμε οποιονδήποτε κύριο κενό χαρακτήρα σε μια δεδομένη συμβολοσειρά.
Ωστόσο, δεν μας επιτρέπει να καθορίσουμε τον συγκεκριμένο χαρακτήρα που θέλουμε να αφαιρέσουμε. Στην περίπτωσή μας, μπορούμε να το χρησιμοποιήσουμε αφαιρώντας τα μηδενικά που προηγούνται από μια συμβολοσειρά.
Ένα παράδειγμα είναι το εξής:
SELECT LTRIM(EmployeeID, '0') AS EmployeeIDWithoutZerosΑΠΟ Υπάλληλο?
Αυτό θα πρέπει να αφαιρέσει τους αρχικούς μηδενικούς χαρακτήρες από τη συμβολοσειρά.
συμπέρασμα
Σε αυτό το σεμινάριο, εξερευνήσαμε δύο κύριες μεθόδους που μπορούμε να χρησιμοποιήσουμε για να αφαιρέσουμε τυχόν αρχικούς μηδενικούς χαρακτήρες από μια δεδομένη συμβολοσειρά/στήλη.