使用SQL Server给数据行添加行号(sqlserver行号)

在日常的开发中,有时候,我们需要为结果集中的每一行添加一个行号,然后在数据库中进行操作。使用 SQL Server,我们可以很容易的为结果集中的每一行添加一个行号。

在进行操作之前,我们需要准备一个SQL Server数据库,并创建一张表。具体操作如下:

1. 在SQL Server中,新建一个数据库。

2. 在新建的数据库中,创建一张表,具体创建语句如下:

CREATE TABLE [dbo].[mytable]
(
[id] [int] primary key Identity(1,1) not null,
[name] [nvarchar](50) NULL,
[email] [nvarchar](50) NULL
)

3.在新创建的表中添加一些数据,供测试使用:

INSERT INTO [mytable]
VALUES ('John','john@example.com')
INSERT INTO [mytable]
VALUES ('Amy','amy@example.com')
INSERT INTO [mytable]
VALUES ('Bob','bob@example.com')

我们可以使用ROW_NUMBER、RANK实现,具体如下:

-- Row_Number-- 
SELECT ROW_NUMBER()OVER(ORDER BY email) AS RowNumber,name,emailFROM [mytable]

-- Rank--
SELECT RANK()OVER(ORDER BY email) AS RankNumber,name,emailFROM [mytable]

运行上述代码,可看到结果集中的每一行,都有一个行号,根据email字段排序:

RowNumber name email
1 John john@example.com
2 Amy amy@example.com
3 Bob bob@example.com

RankNumber name email
1 John john@example.com
1 Amy amy@example.com
1 Bob bob@example.com

以上就是使用SQL Server给数据行添加行号的具体操作步骤,这样可以大大方便我们在操作结果集时,给每一行数据添加行号。


数据运维技术 » 使用SQL Server给数据行添加行号(sqlserver行号)