2016-08-21 1 views
1

Im travaillant avec une base de données sur Oracle, j'ai une table qui ne contient pas de clé primaire, étrangère ou autre, mais qui a une colonne contenant des valeurs différentes. Les valeurs sont répétées dans de nombreux enregistrements, je veux une requête SQL pour récupérer les enregistrements, mais pas plus d'une fois. Voici le tableau:Comment récupérer des enregistrements non récurrents d'une table sans clé?

Noms

Michael Faraday

Stephen Hawking

Michael Faraday

Robert Crochet

Michael Faraday

Nikola Tesla

Nikola Tesla

Stephen Hawking

Thomas Edison

Abdus Salam

Stephen Hawking

Michael Faraday

Alan Turing

Robert Crochet

Albert Einstein

Nikola Tesla

+0

Avez-vous essayé SELECT nom_colonne DISTINCT TABLENAME? –

+0

Ceci est facilement disponible dans une recherche google. – dfundako

Répondre

4

Essayez SELECT noms Distinct de TABLENAME

0

Il y a deux options. Même si la sortie est la même, les performances peuvent varier en fonction du volume de données et du type de base de données que vous utilisez.

Si vous avez un grand ensemble de données, essayez les deux méthodes pour voir laquelle fonctionne le mieux.

Option # 1

SELECT DISTINCT column_name 
FROM table_name 

Option # 2

SELECT column_name 
FROM table_name 
GROUP BY column_name 

En outre, il est typique dans cette situation que vous pouvez trier les résultats. Habituellement, le traitement du tri sur le serveur de base de données est plus performant que de le faire sur le client. Vous devez ajouter la clause ORDER BY pour l'obtenir.

Exemples de SEEE ci-dessous:

Option # 1

SELECT DISTINCT column_name 
FROM table_name 
ORDER BY column_name; 

Option # 2

SELECT column_name 
FROM table_name 
GROUP BY column_name 
ORDER BY column_name;