IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

CONVERT int vers varchar


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Par défaut CONVERT int vers varchar
    Bonjour,

    J'ai une Transaction SQL avec une variable int et une variable varchar.
    Je souhaite que ma variable varchar ait toujours le meme nombre de caractere, à savoir 5.
    Toutefois si mon int à une valeur = 2 un
    SET @TempVarchar = @TempInt me renvoi dans @TempVarchar "2" alors que je souhaiterais "00002".
    Si @TempInt = 15 alors @TempVarchar = "00015"

    J'ai bien tenté d'utiliser CONVERT mais je bloque.

    Si quelqu'un a une idée de genie !
    Merci de vos réponses et de votre lecture.

    Cdt,

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Ci-dessous une fonction utilisateur T-SQL, nommée FC_U_LPAD
    Elle permet Compléter à gauche par le "Motif" précisé (@PadChar) jusqu'à atteindre la "Longueur" précisée (@Longueur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CREATE FUNCTION dbo.FC_U_LPAD( 
       @Str VARCHAR(8000), 
       @Longueur INT,  
       @PadChar CHAR(1) = ' '
       )
       RETURNS varchar(8000)
       AS
    BEGIN   
       DECLARE @StrPadded varchar(8000),        
       @LenStr INT    
       SET @LenStr = LEN(@Str)       
       IF  @Longueur > @LenStr 
    	 SET @StrPadded = REPLICATE(@PadChar, @Longueur - @LenStr)  + @Str
       ELSE 
         SET @StrPadded = SUBSTRING(@Str,1,@Longueur)    
       RETURN @StrPadded 
    END
    GO
    -- Exemple d’utilisation de la fonction FC_U_LPAD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT dbo.FC_U_LPAD(CAST(2 As varchar(8000)), 5, '0') 
    Résultat : 00002 
     
    SELECT dbo.FC_U_LPAD(CAST(15 As varchar(8000)), 5, '0') 
    Résultat : 00015
    A+

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Petit bricolage pas cher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DECLARE @MaVar int, @TempVarchar varchar(5)
    SET @MaVar = 15
    SET @TempVarchar = RIGHT(@MaVar+100000,5)
    print @TempVarchar
    (sans même utiliser CONVERT)

    Dans une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT RIGHT(@MaVar+100000,5)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Par défaut
    Merci pour vos réponses claires et fonctionnelles !
    J'avais pas pensé du tout a çà ! et surtout vu ca comme ca.

    Bonne soirée.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REPLICATE(CAST(@TempVarchar AS INT), 5 - LEN(CAST(@TempVarchar AS INT))
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Question CONVERT INT en VARCHAR
    Par toxycyty dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/01/2012, 16h23
  2. Convertion char vers int
    Par barthelv dans le forum C
    Réponses: 8
    Dernier message: 08/10/2011, 21h45
  3. [convertion]String vers int
    Par laclac dans le forum Langage
    Réponses: 4
    Dernier message: 12/04/2007, 10h49
  4. [DEBUTANT]Convertion int vers Char*
    Par magnus2005 dans le forum Débuter
    Réponses: 13
    Dernier message: 01/04/2007, 11h15
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo