Έχω μια συμβολοσειρά που έχει μήκος έως και 3 χαρακτήρες όταν δημιουργείται για πρώτη φορά στον SQL Server 2008 R2.
Θα ήθελα να το γεμίσω με αρχικά μηδενικά, έτσι ώστε αν η αρχική του τιμή ήταν '1' τότε η νέα τιμή θα ήταν '001'. Ή αν η αρχική του τιμή ήταν '23' η νέα τιμή είναι '023'. Ή αν η αρχική του τιμή είναι '124' τότε η νέα τιμή είναι η ίδια με την αρχική τιμή.
Χρησιμοποιώ τον SQL Server 2008 R2. Πώς μπορώ να το κάνω αυτό χρησιμοποιώντας την T-SQL;
Αν το πεδίο είναι ήδη συμβολοσειρά, αυτό θα λειτουργήσει
SELECT RIGHT('000'+ISNULL(field,''),3)
Αν θέλετε τα μηδενικά να εμφανίζονται ως '000',
Μπορεί να είναι ένας ακέραιος -- τότε θα θέλατε
SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)
Όπως απαιτείται από την ερώτηση αυτή η απάντηση λειτουργεί μόνο αν το μήκος <= 3, αν θέλετε κάτι μεγαλύτερο θα πρέπει να αλλάξετε τη σταθερά συμβολοσειράς και τις δύο ακέραιες σταθερές στο πλάτος που απαιτείται. π.χ.
'0000' και VARCHAR(4)),4
Για όσους θέλουν να ενημερώσουν τα υπάρχοντα δεδομένα τους, εδώ είναι το ερώτημα:
update SomeEventTable set eventTime=RIGHT('00000'+ISNULL(eventTime, ''),5)
Για ακέραιους αριθμούς μπορείτε να χρησιμοποιήσετε την έμμεση μετατροπή από int σε varchar:
SELECT RIGHT(1000 + field, 3)