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 :

Ajout de colonne et insertion avec les valeur d'une autre colonne (ligne+1)


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut Ajout de colonne et insertion avec les valeur d'une autre colonne (ligne+1)
    Bonjour,
    Je souhaite ajouter une colonne (col3) dans une table qui récupère la valeur de la ligne suivante d'une autre colonne (col2) et mettre 'null' dans la dernière ligne de cette nouvelle colonne (col3).

    Exemple :

    Table1
    col1 col2 col3
    1 27 58
    2 58 68
    3 68 237
    4 237 64
    5 64 null

    Merci beaucoup pour votre aide

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour,

    Quel est le but/contexte de l'opération ? vous pourriez simplement créer une vue sur la table existante... Ainsi les données resteraient cohérentes...

    Enfin sinon, ajoutez votre colonne (nullable), puis exécutez la requête de mise à jour pour la nouvelle colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE T1
    SET col3 = T2.col2
    FROM LaTable T1
    INNER JOIN LaTable T2
        ON T2.col1 = T1.col1 + 1

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Merci pour votre réponse.
    En fait je souhaite mettre à jour la col3 dans la meme table.
    Est ce qu'il est possible de le faire sans créer une vue ni ajouter cette colonne à partir d'une autre table ?

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par diidouu Voir le message
    Est ce qu'il est possible de le faire sans créer une vue ni ajouter cette colonne à partir d'une autre table ?
    Oui, c'est ce que je viens de vous indiquer !

    Dans ma requête, je nomme la table "LaTable", mais c'est en fait bien "Table1" si on suit l'exemple que vous avez donné...

    bref si on reprend le tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    --Ajout de la colonne col3
    ALTER TABLE Table1
        ADD COLUMN col3 INT NULL
     
    --mise à jour de la colonne
    UPDATE T1
    SET col3 = T2.col2
    FROM Table1 T1
    INNER JOIN Table1 T2
        ON T2.col1 = T1.col1 + 1

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2014, 15h08
  2. Réponses: 4
    Dernier message: 05/02/2013, 08h26
  3. Réponses: 2
    Dernier message: 22/01/2013, 18h31
  4. Réponses: 2
    Dernier message: 02/09/2011, 14h25
  5. Réponses: 5
    Dernier message: 07/05/2009, 16h41

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