如何设置row_number的初始值

Nan 0 信誉分
2024-12-31T06:33:49.23+00:00

我知道,row_number是从1开始的自然数,但是我现在有一种情况需要它不从1开始。

比如说,当part为NULL时,number为1,其余的part从2开始计数:

Part | row_number

NULL | 1

A | 2

A | 3

A | 4

B | 2

B | 3

B | 4

麻烦提供一些想法或建议。

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
206 个问题
Transact-SQL
Transact-SQL
ANSI SQL 语言的 Microsoft 扩展,包括过程编程、局部变量和各种支持函数。
32 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. LiHongMSFT-4306 30,826 信誉分
    2024-12-31T07:08:28.3233333+00:00

    你好,

    我知道,row_number是从1开始的自然数

    是的,row_number的返回值是从1开始的自然数列,你无法修改初始值。

    不过根据你的实际需求,我觉得你可以将除NULL以外的rownumber都加上1,从而得到你想要的结果集。

    像这样:

    SELECT ROW_NUMBER() OVER (partition by PART order by (select null))+CASE WHEN PART is null THEN 0 else 1 end R 
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。