给定下面的数字序列,如何分配一个序列号,以便为每个以1开头、以0结尾的块指定一个唯一的标识号?如何使用TSQL创建序列号列?| 序列号|序号|| - -|- -|| 一个|一个|| 一个|一个|| 第0页|一个|| 一个|2个|| 一个|2个|| 一个|2个|| 第0页|2个|| 一个|三个|| 第0页|三个|
h4cxqtbf1#
使用COUNT OVER来计算零。您需要某个列来确定顺序。我在下面的查询中将其称为sortkey:
COUNT OVER
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
1条答案
按热度按时间h4cxqtbf1#
使用
COUNT OVER
来计算零。您需要某个列来确定顺序。我在下面的查询中将其称为sortkey:演示:https://dbfiddle.uk/3DZBeDMQ