选择id为distinct的所有行

时间:2017-10-11 10:52:37

标签: sql sql-server-2005 distinct

嗨我需要一些关于如何选择所有行的选择语句的建议,其中电话号码作为“区别”的衡量标准。

我的例子。

|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选择哪个行的结果,只有整行可用并且它选择不同的电话号码无关紧要。希望你明白我在这里想做什么。

1 个答案:

答案 0 :(得分: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;