Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Format αριθμού στον SQL

Îåêßíçóå áðü ôï ìÝëïò Panos Kousidis. Τελευταία δημοσίευση από το μέλος Panos Kousidis στις 02-05-2007, 14:28. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-05-2007, 00:42 31120

    Format αριθμού στον SQL

    Έψαξα πολύ το google για να βρω λύση στο πρόβλημά μου αλλά λόγω περασμένης ώρας ίσως δεν κατάφερα να βρω τίποτα που να μου κάνει
    Έχω μια μεταβλητή int μέσα σε μία Stored Procedure και θέλω να αποθηκεύσω την τιμή της σε μία άλλη, τύπου varchar, με 6ψήφιο format (βάζοντας 0 στην αρχή για συμπλήρωμα)
    Πώς στο καλό γίνεται κάτι τέτοιο;

    Panos
  •  01-05-2007, 01:02 31121 σε απάντηση της 31120

    Απ: Format αριθμού στον SQL

    Πολύ γρήγορα σε SQL 2000 (στο 2005 μπορεί να γίνεται πιό εύκολα - δεν το γνωρίζω):

    --Ξεκινάμε με μια μεταβλητή τύπου int
    declare @no int
    set @no = 15

    --Χρησιμοποιούμε μια ενδιάμεση μεταβλητή για το padding
    declare @filler varchar(6)
    set @filler = '000000'

    -- Εδώ είναι η varchar μεταβλητή μας. Οχι όμως η padded.
    declare @noc varchar(6)
    set @noc = convert(varchar(6),@no)

    --Αυτή θα είναι η μεταβλητή που θα πάρουμε ως αποτέλεσμα.
    declare @nocpad varchar(6)

    --Το filler μας θα έχει τόσα μηδενικά λιγότερα από το αρχικό
    --όσα το μήκος της ενδιάμεσης varchar μεταβλητής.
    set @filler = replace(space(len(@filler)-len(@noc)), ' ', '0')

    --Κολλάμε μαζί τις filler και noc
    select @nocpad = @filler + @noc

    --Voila! Το περιστέρι βγήκε από το καπέλο!
    select @nocpad


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  01-05-2007, 04:26 31128 σε απάντηση της 31120

    Απ: Format αριθμού στον SQL

    Μπορείς να κάνεις και αυτό

     

    declare @aa int

    set @aa = 657

    declare @bb varchar(6)

    set @bb = right('000000' + convert(varchar(6),@aa),6)

    select @bb


    Dimitris-Ilias Gkanatsios
    Developer Evangelist, Microsoft Hellas

    My Blog
    StudentGuru
    Twitter
    Facebook
  •  01-05-2007, 07:45 31131 σε απάντηση της 31128

    Απ: Format αριθμού στον SQL

    Μπράβο! Πιό απλή λύση ακόμα!

    (Παω να καταθέσω τα χαρτιά μου στον ΟΑΕΔ σιγα σιγα...:) )

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  01-05-2007, 16:54 31167 σε απάντηση της 31131

    Απ: Format αριθμού στον SQL

    Ωραίες λύσεις.

    Άσχετο: Θέλεις να μας πεις και γιατί θέλεις να το κάνεις αυτό;


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  02-05-2007, 14:28 31223 σε απάντηση της 31167

    Απ: Format αριθμού στον SQL

    Ευχαριστώ, ωραίο το κόλπο με το right. Φτιάχνω παραστατικά και θέλω ένα πεδίο να παίρνει 6ψήφια κωδικοποίηση τύπου 'ΔΑ0-000015' αλλά αυτό θέλω να γίνεται μέσα από τη βάση προς αποφυγή conflicts με άλλα instances του προγράμματος.

    Ευχαριστώ και πάλι!

    Panos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems