【发布时间】:2011-03-13 23:23:02
【问题描述】:
我正在处理一个查询,我想增加其中一个字段并在键值不同时重新启动计数器。
我知道这段代码不起作用。以编程方式,这就是我想要的......
declare @counter int, @id
set @counter = 0
set @id = 0
select distinct
id,
counter = when id = @id
then @counter += 1
else @id = id
@counter = 1
...最终结果如下所示:
ID Counter
3 1
3 2
3 3
3 4
6 1
6 2
6 3
7 1
是的,我被 SQL2k 困住了。否则 row_number() 会起作用。
【问题讨论】:
-
根据查询中可用的其余内容,Row_Number() 可能会有所帮助吗?
-
@reallyJim:如果他们使用 SQL2K,如标签所示,那么
ROW_NUMBER将不可用。 -
@LukeH 完全错过了这一点!
标签: sql sql-server tsql sql-server-2000