sql-server 如何给序列块编号

pdkcd3nj  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(153)

给定下面的数字序列,如何分配一个序列号,以便为每个以1开头、以0结尾的块指定一个唯一的标识号?如何使用TSQL创建序列号列?
| 序列号|序号|
| - -|- -|
| 一个|一个|
| 一个|一个|
| 第0页|一个|
| 一个|2个|
| 一个|2个|
| 一个|2个|
| 第0页|2个|
| 一个|三个|
| 第0页|三个|

h4cxqtbf

h4cxqtbf1#

使用COUNT OVER来计算零。您需要某个列来确定顺序。我在下面的查询中将其称为sortkey:

select
  t.*,
  count(case when sequence = 0 then 1 end) 
    over (order by sortkey
          rows between unbounded preceding and 1 preceding) + 1
    as sequence_number
from mytable t
order by sortkey;

演示:https://dbfiddle.uk/3DZBeDMQ

相关问题