Tsql SQL-从条件开始添加顺序计数器列
我有一张桌子:Tsql SQL-从条件开始添加顺序计数器列,tsql,Tsql,我有一张桌子: id market 1 mkt1 2 mkt2 3 mkt1 4 special 5 mkt2 6 mkt2 7 special 如何从表中选择所有列,同时添加一个顺序计数器列,该列在触发条件后开始计数?在本例中,当市场==特殊: 这里有一个选项,将行号与union all一起使用: 编辑后使用min…我对我的问题做了一点修改-您可以更新在线演示吗?谢谢大家!@刚刚看到你的编辑。您可以在cte中使用m
id market
1 mkt1
2 mkt2
3 mkt1
4 special
5 mkt2
6 mkt2
7 special
如何从表中选择所有列,同时添加一个顺序计数器列,该列在触发条件后开始计数?在本例中,当市场==特殊:
这里有一个选项,将行号与union all一起使用:
编辑后使用min…我对我的问题做了一点修改-您可以更新在线演示吗?谢谢大家!@刚刚看到你的编辑。您可以在cte中使用min来获取条件的第一个实例。如果您感兴趣,可以在这里使用另一个实例@Johnfi也添加了一个使用相同方法的答案。话虽如此,另一个答案似乎也适用。希望双方都能帮忙!
id market count
1 mkt1 0
2 mkt2 0
3 mkt1 0
4 special 1
5 mkt2 2
6 mkt2 3
7 special 4
with cte as (
select min(id) as id from t where market = 'special'
)
select t.id, t.market, 0 rn
from t join cte on t.id < cte.id
union all
select t.id, t.market, row_number() over (order by t.id) rn
from t join cte on t.id >= cte.id