2017-10-11 108 views
1

您好,我需要一些关于如何在select语句中选择所有行的电话号码作为“区分”的措施。选择id不同的所有行

我的例子。我想要什么

|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 | 

例子:

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

关于在其上的行SQL选择PIC的结果并不重要,只是整个行可用,它使选择不同的电话号码。希望你明白我想在这里做什么。

+0

你是什么你如何图片名称/地址逻辑? – Matt

+2

用您正在使用的数据库标记您的问题。 –

+0

可能你需要一些特定于dbms的函数,所以请指定你的目标数据库为@GordonLinoff建议 –

回答

4

ANSI SQL支持row_number()功能,这是一个典型的解决方案:

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

这是Sql Server 2005支持的吗? – John

+0

如果sql server 2005是你使用的数据库,那么就用你的问题来标记你的问题,这样就不要浪费你的时间来建议那些不会工作的东西,或者浪费我们的时间来暗示它们。检查row_number的文档,它显示了它适用于哪些版本https://docs.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql –

+0

完成谢谢你的建议:) – John

相关问题