首页 > 解决方案 > 根据 id 编号行

问题描述

我有一个返回类似这样的查询:

Id | Value
1  | Hi,
1  | I'm
2  | just
2  | an
2  | example
3  | message.

我想要做的是根据 id 对行进行编号。因此,对于上面的示例,我想返回如下内容:

Id | Value    | Number
1  | Hi,      | 1
1  | I'm      | 2
2  | just     | 1
2  | an       | 2
2  | example  | 3
3  | message. | 1

是否有一种简单的方法可以在与第一个示例中使用的查询相同的查询中执行此操作?

标签: sql-servertsql

解决方案


问题是该表中没有任何东西可以保证行的顺序,因此无法保证您想要的结果。

select *
   , row_number() over(partition by id order by (select 1)) as Number
from yourtable

推荐阅读