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 :

Suppression de doublons


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut doublons dans une table sql
    Bonjour, comment faire pour supprimer des doublons dans une table sql serveur 2005, faut il faire un programme ou bien existe t il une solution par le language sql ?
    merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Par défaut
    pour les supprimer dans une requete select, il faut utiliser distinct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select distinct * from table;
    pour les effacer de la table, il faut reperer un identifiant ou utiliser l'oid (sous postgre par exemple)

  3. #3
    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
    Vous pouvez peut être vous inspirer de cette méthode valable pour Oracle http://oracle.developpez.com/faq/?page=3-1#doublons sachant que le ROWID est un identifiant interne unique pour chaque ligne d'une table.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Par défaut
    Citation Envoyé par Magnus
    Vous pouvez peut être vous inspirer de cette méthode valable pour Oracle http://oracle.developpez.com/faq/?page=3-1#doublons sachant que le ROWID est un identifiant interne unique pour chaque ligne d'une table.
    Il n'y a malheuresement pas d'identificateur de Row unique sous SQL Server, en tout cas pas à l'époque de ce document

    Pour identifier quelle sont les lignes en doublon il suffit de faire une requete du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COLONNE_1, COLONNE_N,count(*) FROM TABLE1 HAVING COUNT(*)>1;
    avec COLONNE_1, COLONNE_N ta clé primaire.

    Cette requete va te donner toutes les lignes qui sont en double.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut
    impossible de faire une key primaire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT COLONNE_1, COLONNE_N
    c'est justement dans le couple COLONNE_1, COLONNE_N qu'il y a des doublons, SQL Serveur refuse de créer la clef vu qu'il y a des doublons

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Par défaut
    Citation Envoyé par nutix2003
    impossible de faire une key primaire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT COLONNE_1, COLONNE_N
    c'est justement dans le couple COLONNE_1, COLONNE_N qu'il y a des doublons, SQL Serveur refuse de créer la clef vu qu'il y a des doublons
    Quand je disais ta clé primaire, je parlais evidemment de celle que tu ne peux pas faire a cause des doublons !

    Pas besoin que la clé soit effective, juste que la liste des colonnes de la requete correponde à la liste des colonnes de la clé "voulue".

    Mais le mieux c'est de prendre le lien fourni par Magnus !

  7. #7
    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 Gaël Donat
    Il n'y a malheuresement pas d'identificateur de Row unique sous SQL Server, en tout cas pas à l'époque de ce document
    SQLPro propose une technique de suppression de doublons dans cet article qui convient pour SQL Server.
    En plus, ses techniques sont conformes vis-à-vis de la norme SQL.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut
    je ne sais pas comment passer l'ordre sql cité dans l'exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DELETE
    FROM T_DOUBLON T1
    WHERE  EXISTS (SELECT *
                   FROM   T_DOUBLON T2
                   WHERE  T1.NUM = T2.NUM
    le T1 ne plait pas à sql serveur

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

Discussions similaires

  1. Suppression de doublons et insertion
    Par Samish dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/08/2005, 21h57
  2. Réponses: 17
    Dernier message: 03/12/2004, 11h17
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 17h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 21h03

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