【问题标题】:Selecting all rows in which id is distinct选择 id 不同的所有行
【发布时间】:2018-03-23 00:30:22
【问题描述】:

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

我所拥有的示例。

|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 并不重要,只要整行可用并且选择不同的电话号码即可。希望你明白我在这里想要做什么。

【问题讨论】:

  • 你的图片名称/地址的逻辑是什么?
  • 用您正在使用的数据库标记您的问题。
  • 可能您需要一些特定于 dbms 的功能,所以请按照@GordonLinoff 的建议指定您的目标数据库
  • 抱歉给您带来不便,已完成,谢谢:)

标签: sql sql-server-2005 distinct


【解决方案1】:

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;

【讨论】:

  • Sql Server 2005 支持这个吗?
  • 如果 sql server 2005 是您使用的数据库,那么请用它标记您的问题,这样就不要浪费您的时间来建议那些不起作用的东西,或者浪费我们的时间来建议它们。查看有关 row_number 的文档,它显示了它适用于 docs.microsoft.com/en-us/sql/t-sql/functions/… 的版本
  • @John 。 . . SQL Server 2005 是第一个支持row_number() 的SQL Server 版本。但是,您应该使用受支持的 SQL Server 版本。
猜你喜欢
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 2020-10-05
  • 2011-11-09
相关资源
最近更新 更多