当遇到任何乘积时增加行号-T SQL-单个查询(不允许多个语句)



下面有一个类似的表格

ID  Vals
1   Product
2   Milk
3   Butter
4   Cheese
5   Yogurt
6   Product
7   Muesli
8   Porridge
9   Product
10  Banana

需要的输出,如低于

RWNUM   ID  Vals
1       1   Product
1       2   Milk
1       3   Butter
1       4   Cheese
1       5   Yogurt
2       6   Product
2       7   Muesli
2       8   Porridge
3       9   Product
3       10  Banana

每次遇到Product时,RWNUM列的值都将增加一。

这需要在单个TSQL查询中实现。

欢迎任何想法。

看起来你想要一个"产品":

select t.*,
sum(case when val = 'Product' then 1 else 0 end) over (order by id) as rwnum
from t;

最新更新