2017-10-11 21 views
1

Salut, j'ai besoin de conseils sur la façon de faire une instruction de sélection en sélectionnant toutes les lignes dans lesquelles le numéro de téléphone agit comme une mesure de «distinction».Sélection de toutes les lignes dans lesquelles l'identifiant est distinct

Exemple de ce que j'ai.

|ID |Name |Phone Number| Address | 
| |  |   |   | 
|1 |John | 1234567 | A.Road 1 | 
|1 |John | 1234567 | B.Road 2 | 
|2 |Jane | 7654321 | C.Road 3 | 
|3 |Jim | 7654321 | C.road 3 | 

Exemple de ce que je veux:

|ID |Name |Phone Number| Address | 
| |  |   |   | 
|1 |John | 1234567 | A.Road 1 | 
|2 |Jane | 7654321 | C.Road 3 | 

En ce qui concerne sur lequel des lignes SQL choisit de pic sur le résultat n'a pas d'importance seulement que toute la ligne est disponible et qu'il fait une sélection de numéros de téléphone distincts. J'espère que vous comprenez ce que j'essaie de faire ici.

+0

Quelle est votre logique sur la façon dont vous le nom/adresse pic? – Matt

+2

Étiquetez votre question avec la base de données que vous utilisez. –

+0

Vous avez probablement besoin d'une fonction spécifique à dbms, veuillez donc spécifier votre cible db comme @GordonLinoff suggéré –

Répondre

4

ANSI SQL prend en charge la fonction row_number(), qui est une solution typique:

select t.* 
from (select t.*, 
      row_number() over (partition by phone_number order by id) as seqnum 
     from t 
    ) t 
where seqnum = 1; 
+0

Est-ce supporté dans Sql Server 2005? – John

+0

Si sql server 2005 est la base de données que vous utilisez, envoyez votre question avec TAG afin de ne pas perdre votre temps à suggérer des choses qui ne marcheront pas, ou de perdre notre temps à les suggérer. Consultez la documentation sur row_number, il indique les versions auxquelles il s'applique https://docs.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql –

+0

Terminé merci pour les conseils :) – John