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

Langage SQL Discussion :

[SQL Server 2005] From int to String


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut [SQL Server 2005] From int to String
    Bonjour,

    Je viens ici chercher un peu d'aide.

    Voilà dans une table j'ai un champ num_client de type int.
    J'ai un autre champ ref_client de type nvarchar(4).

    Je souhaiterais par exemple pour le client 1 avoir:
    num_client=1
    ref_client=0001

    Je souhaiterais par exemple pour le client 256 avoir:
    num_client=256
    ref_client=0256

    ...

    Comment puis-je faire?
    J'ai essayé avec Convert et Cast,mais visiblement ce n'est pas approprié.

    Je vous remercie par avance,

    Vincent

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    D'accord pour le résultat à obtenir mais quel est votre situation de départ ?
    Seul la colonne num_client est renseignée et à partir de celle-ci vous souhaitez renseigner ref_client qui est en varchar2 ?

    Quelle commande avez-vous essayé pour le CAST ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut
    Tout d'abord,merci pour cette réponse si rapide!

    Le champ num_client est en auto-incremente.
    Je fais donc une insertion puis pour le champ ref_client.
    Ensuite je récupère la valeur de ref_client avec @@identity.
    Et je fais un update pour cette occurence pour mettre à jour le champ ref_client.

    Pour Cast,j'ai essayé divers commandes,mais aucune ne s'est avéree concluante.

    Vincent

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par Prodige2020
    Pour Cast,j'ai essayé divers commandes,mais aucune ne s'est avéree concluante
    Justement ce sont les commandes que vous avez essayées que je voulais voir (je ne connais pas SQL Server) ; essayez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE MaTable
    SET REF_CLIENT = CAST(NUM_CLIENT AS VARCHAR)
    WHERE ...
    Attention :
    - d'après votre exemple il faut aussi utiliser des caractères de bourrage avec une fonction telle que LPAD si elle est disponible sous SQL Server
    - l'utilisation de CAST est "sensible" car par exemple sous Oracle, elle fonctionne mais il convient de spécifier la longueur du type :
    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
    19
    20
    21
    22
    10g SOC5> select *
      2  from dvp;
     
    NUM_CLIENT REF_
    ---------- ----
           123
     
    1 ligne sélectionnée.
     
    10g SOC5> update dvp
      2  set ref_client = cast(num_client as varchar2(4));
     
    1 ligne mise à jour.
     
    10g SOC5> select *
      2  from dvp;
     
    NUM_CLIENT REF_
    ---------- ----
           123 123
     
    1 ligne sélectionnée.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE MaTable
    SET REF_CLIENT = CAST(NUM_CLIENT AS VARCHAR)
    WHERE ...
    Voici ce que j'ai fait pour le CAST:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE prospectSET ref_prospect=CAST(@num_prospect AS nvarchar(4))
    C'est pour la conversion que j'ai fais divers essais.

    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
    19
    20
    21
    22
    23
     
    10g SOC5> SELECT *
      2  FROM dvp;
     
    NUM_CLIENT REF_
    ---------- ----
           123
     
    1 ligne sélectionnée.
     
    10g SOC5> UPDATE dvp
      2  SET ref_client = cast(num_client AS varchar2(4));
     
    1 ligne mise à jour.
     
    10g SOC5> SELECT *
      2  FROM dvp;
     
    NUM_CLIENT REF_
    ---------- ----
           123 123
     
    1 ligne sélectionnée.
    Concernant cet exemple,ce n'est pas exactement ce que je veux faire.
    Par exemple j'aurais voulu que la ref du client 123 soit 0123.

    Je pense que je vais le faire à la main.
    Je pensais qu'il existait une fonction pour celà.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par Prodige2020
    Concernant cet exemple,ce n'est pas exactement ce que je veux faire.
    Par exemple j'aurais voulu que la ref du client 123 soit 0123
    C'est justement ce que je vous disais : sous Oracle, LPAD et ça m'étonnerait que SQL Server ne dispose de cette fonction ou d'autre équivalente (cf la doc j'imagine).
    Pour le CAST, je déplacerai votre demande dans le forum SQL Server quand vous me ferez signe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/10/2011, 17h36
  2. insert into sql server 2005 select from XLSX
    Par enstein8 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/10/2011, 12h52
  3. [SQL Server 2005] équivalent like '%' pour int
    Par Zobbiwan dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/10/2008, 15h27
  4. Réponses: 1
    Dernier message: 04/03/2007, 15h40

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