Maison > base de données > tutoriel mysql > Comment supprimer les lignes en double dans SQL sans identifiant unique ?

Comment supprimer les lignes en double dans SQL sans identifiant unique ?

Patricia Arquette
Libérer: 2025-01-23 01:37:08
original
928 Les gens l'ont consulté

How to Delete Duplicate Rows in SQL Without a Unique Identifier?

Supprimer les lignes en double sans identifiant unique

Pour supprimer les lignes en double d'une table qui n'ont pas de colonne d'identifiant unique, vous pouvez utiliser un CTE (expression de table commune) en conjonction avec ROW_NUMBER().

Solution :

Veuillez considérer la demande suivante :

<code class="language-sql">WITH CTE AS (
   SELECT [col1], [col2], [col3], [col4], [col5], [col6], [col7],
       RN = ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col1)
   FROM dbo.Table1
)
DELETE FROM CTE WHERE RN > 1;</code>
Copier après la connexion

Cette requête effectue les opérations suivantes :

  1. Créer un CTE : Il crée un CTE nommé "CTE", attribue à chaque ligne un ROW_NUMBER() unique, en comptant à partir de 1 de la colonne "col1" dans chaque partition de valeur unique.
  2. Identifier les doublons : La requête identifie les lignes en double en vérifiant si ROW_NUMBER() est supérieur à 1.
  3. Supprimer les doublons : Il supprime ensuite toutes les lignes du CTE qui ont des valeurs ROW_NUMBER() en double.

Résultat :

Le résultat de la requête est un tableau dont les lignes en double ont été supprimées, ne conservant que la première occurrence de chaque ligne unique. Ceci est réalisé sans nécessiter une colonne d’identifiant unique dans la table d’origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal