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

Développement SQL Server Discussion :

Update complexe sur un champ


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2010
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Update complexe sur un champ
    bonjour , quelqu'un pour me donner un piste , j ai un update qui me fatigue , ca passe a 90% . le update est que , je veut que le 01 debut se remplace par 02 .
    voila j ai un champ qui contient des numeros commencant par 01 ex 01256 , 01257 , 01258 , 01259 , 01301 mais executant cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE ma table 
    SET champs = REPLACE(champs,SUBSTRING(champs,1,2),02)
    WHERE champs BETWEEN 01254 and 01301;
    La requete passe a 90 % mais elle touche la valeur 01301 , pour le faire 02302 alors que je vais faire le update que pour les 01 de debut .

    merci

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 695
    Points
    10 695
    Billets dans le blog
    21
    Par défaut
    Bonsoir
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE ma table 
    SET champs = CONCAT('02', SUBSTRING(champs, 3, LEN(champs)))
    WHERE champs BETWEEN 01254 and 01301;
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Membre à l'essai
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2010
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    merci je vais tester et vous revenir ....

  4. #4
    Membre à l'essai
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2010
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    merci , ça a marche ....

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Le vrai problème de votre requête c'est que vous n'avez pas respecté les types de vos données.

    Vous auriez du l'écrire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update matable 
       set champs = replace(champs, substring(champs, 1, 2),'02')
     where champs between '01254' and '01301';

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

Discussions similaires

  1. [DEBUTANT] UPDATE partiel sur un champ.
    Par vantom dans le forum SQL
    Réponses: 4
    Dernier message: 29/01/2009, 12h58
  2. UPDATE en ajoutant un 0 sur un champ de type "char"
    Par doum2 dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/03/2006, 15h22
  3. Update avec du chinois sur un champ nvarchar
    Par broux dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/02/2006, 15h16
  4. [SQL Server] Requete update sur 2 champs
    Par galou10 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/02/2006, 21h22
  5. Probleme d'UPDATE sur un champ text
    Par Nip dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/07/2005, 12h35

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