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 :

suppression de doublon


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 108
    Par défaut suppression de doublon
    salut a tous ,
    j'ai une table avec une "clé primaire" (ID) et des champs(nom, prenom ,date de naissance). Dans mon cas bien que j'ai des ID je souahite avoir des nom unique.
    donc je voudrais ecrire une reque qui me permettrai de supprimmer les nom qui apparaise 2 ou 3 fois pour n'en garder qu'un seul.
    j'ai décri le probleme de maniere simplifier, ca doit vous paraitre unpeu bizard mais mon besoin est bien fondé.
    Le plus importaant pour moi c'est la requete.
    merci pour l'aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Voyez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/doublons/
    et en particulier la paragraphe consacré à la suppression des pseudo doublons.

    Enfin, pensez à l'avenir placer une contrainte d'unicité sur cette colonne !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éclairé
    Homme Profil pro
    SQL Server
    Inscrit en
    Juin 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : SQL Server
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 43
    Par défaut
    Il faut utiliser group by + having

    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
    drop table #temps
     
    create table #temps 
    (
    	id int,
    	nom varchar(30),
    	prenom varchar(30)
    )
     
    insert into #temps values (1, 'Dupont', 'Pierre')
    insert into #temps values (2, 'Dupont', 'Francis')
    insert into #temps values (3, 'Dupont', 'Jacques')
    insert into #temps values (4, 'Toto', 'Jacques')
     
    select distinct nom from #temps
     
    delete from #temps 
    where nom in (select nom from #temps group by nom having count(nom) > 1)
     
    select nom from #temps

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 108
    Par défaut
    merci pour vos reponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT nom FROM #temps
     
    DELETE FROM #temps 
    WHERE nom IN (SELECT nom FROM #temps group by nom having count(nom) > 1)
    mais @Athomorphine avec ta requete je me retrouve a supprimer tous les nom='Dupont' que j'ai dans ma base, alors que moi je souhaite garde un des enregistrement. Ou je me trompe?
    merci

  5. #5
    Membre éclairé
    Homme Profil pro
    SQL Server
    Inscrit en
    Juin 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : SQL Server
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 43
    Par défaut
    A d'accord tu veux au moin en garder un, je n'avais pas compris
    Et effectivement avec la requete tu supprime tout

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 108
    Par défaut
    Merci SQl_pro, ton lien m'a beaucoup aidé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    NUM         NOM              PRENOM   COLID      
    ----------- ---------------- -------- -----------
    33          DUPONT           marc     1
    33          DUPONT           marc     2
    33          DUPONT           marc     3
    47          DUPOND           alain    4
    59          DUPOND           alain    5
    65          Dupond           Frédéric 6
    78          DUPOND           frédéric 7
    81          DUPOND           fréd     8
    99          DUPON            éric     9
    Pour creer cette colonne COLID et pour ne pas avoir de surprise desagrable il faut que l'emplacement des colonnes soit rigoureusement choisi?
    dans notre cas si on inversait la posisition des colonnes num et nom on aurait pu tomber sur des resultats non souhaiter.
    Ma question est donc de savoir comment fait on pour deplacer un champ qui se trouve en 3eme position pour le mettre en premiere posistion.
    ex:mettre PRENOM a la place de NUM et vice versa.

    jespere que je me suis fait comprendre.
    merci

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    La position d'une colonne (et non d'un champ, car cela n'existe pas en matière de SGBDR) n'a aucun sens. Une table n'a pas d'ordre, ni des colonnes ni des lignes !
    Lisez ceci :
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L6
    et
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L2

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ 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