You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中基于原ID分配连续整数ID

实现原ID替换为连续整数的查询语句(SQL Server 2019)

原表数据

idvalue
15a
15b
18c
19d
20e
20f

需求说明

需要编写SELECT查询,将相同的原id替换为从1开始的连续整数,最终得到如下结果:

idvalue
1a
1b
2c
3d
4e
4f

解决方案

在SQL Server 2019中,使用DENSE_RANK()窗口函数即可实现需求。该函数会为相同的分组值分配相同的排名,且排名是连续不跳跃的,完全匹配需求。

查询语句如下:

SELECT 
    DENSE_RANK() OVER (ORDER BY id) AS id,
    value
FROM 
    你的表名;

将语句中的你的表名替换为实际的表名称即可执行。

结果说明

DENSE_RANK() OVER (ORDER BY id)会根据原id的排序,为每个不同的原id分配连续的整数编号,相同原id的记录会得到相同的编号,与预期结果一致。

内容的提问来源于stack exchange,提问作者Kasun sunil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:40:27