SQL Server 在sql的Row_Number函数中每隔100个数字跳过一次

nsc4cvqm  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(153)

我必须做一个自动递增序列,但它需要跳过每100个数字,并转到下一个数字。
示例:
1,
2,
3,
......九十九,一百零一,一百零二......一百九十九,二十零一,二十零二
有谁能帮忙吗
我尝试了rownum()over(partition by column_name)+1,但它将所有行更新为1。
| 上一个值|更新后(_U)|
| - -|- -|
| 一个|2个|
| 2个|三个|
| 九十九|100个|
但我想跳过第100行编号的分配,转到101,类似地,转到第200行编号,转到201

4uqofj5v

4uqofj5v1#

你可以使用CTE和一些整数运算。这是一个伪SQL,由于缺乏样本数据,但是,这应该可以让你达到你需要的地方:

WITH CTE AS(
    SELECT {Your Columns},
           ROW_NUMBER() OVER (/*PARTITION BY {Column(s)} */ORDER BY {Columns}) AS RN
    FROM dbo.YourTable)
SELECT {Your Columns},
       RN + ((RN-1) / 99) AS RN
FROM CTE;

db<>fiddle

相关问题