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

SQL Oracle Discussion :

Plusieurs UPDATE SET WHERE en une fois


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut Plusieurs UPDATE SET WHERE en une fois
    Bonjour, J'ai une table SQL contenant plus de 20000 lignes sur plusieurs colonnes.
    Je dois manipuler des données de cette table depuis excel. Au final, je voudrais pouvoir faire un update des diverses modifications effectuées sur excel.

    J'arriverais au final a quelque chose du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Update table1
    set Paramètre1 = a
    where Paramètre2 = b
     
    Set paramètre1 = c
    where paramètre2=d ...
    En gros, j'ai systématiquement un couple a,b ou c,d ..ou l'un des 2 du couple est le paramètre where et l'autre la valeur à changer. L'idée était de faire une VBA en excel qui génrèrerait le sql pour qu'en une fois les soient intégrées. Pour la VBA, je n'aurait pas de problème en revanche je ne trouve pas le code permettant de passer plusieurs update/Set/where en une transaction.


    Merci à tous!!
    Y'a-t-il une méthode officielle, des moyens détournés, des ruses?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    tu fais une table temporaire ou variable table contenant param2 et newvalue
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update table
    set paramètre1 = tmp.newvalue
    from table inner join tmp on table.paramètre2 = tmp.param2
    (à adapter, ca c'est du ms sql server)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut Et ça est ce que ça marcherait
    Re,

    Est ce que ce code fonctionnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Table1
    set Paramètre2 = Paramètre2-
    case when Paramètre1 = a then b
           when Paramètre1 = c then d

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut Et ça est ce que ça marcherait
    Re,

    Est ce que ce code fonctionnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE Table1
    set Paramètre2 = Paramètre2- ' le but étant de modifier le paramètre2 en lui enlevant une valeur x variable selon le parametre1
    case when Paramètre1 = a then b
           when Paramètre1 = c then d
           else 0
    end
    D'avance merci ;-)

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    update matable 
    set param1 = case when param2=a then new_val_a
                 when param2=b then new_val_b
                 when param2=c then new_val_c
                 else new_val_d 
                 end
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update matable 
    set param1 = param1 - decode ( param2 ,  a,  on_retire_a ,     b,  on_retire_b,     c,  on_retire_c,    on_retire_d)
    dans ces 2 exemples, new_val_d ou on_retire_d sont les valers par défaut ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/12/2015, 20h33
  2. [MySQL] update php where id une list/menu
    Par chaker176 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/06/2013, 14h52
  3. [PDO] Erreur de syntaxe: update set where
    Par zamoud dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/02/2011, 11h20
  4. [Requête SQL] Optimisation de plusieurs UPDATE SET FROM
    Par dens19 dans le forum Développement
    Réponses: 6
    Dernier message: 13/03/2009, 16h51
  5. [INTERBASE][UPDATE SET WHERE] problème de requete
    Par exclusif dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/03/2006, 21h10

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