sql – 如何在select查询中递增
发布时间:2020-12-12 08:52:16 所属栏目:MsSql教程 来源:网络整理
导读:我有一个查询我正在工作,我想增加一个字段,并重新启动计数器,当一个键值不同. 我知道这段代码不行.以编程方式,这就是我想要的 declare @counter int,@idset @counter = 0set @id = 0select distinct id,counter = when id = @id then @counter += 1 else @id
我有一个查询我正在工作,我想增加一个字段,并重新启动计数器,当一个键值不同.
我知道这段代码不行.以编程方式,这就是我想要的 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()将工作. 解决方法假设一张桌子:CREATE TABLE [SomeTable] ( [id] INTEGER,[order] INTEGER,PRIMARY KEY ([id],[order]) ); 在Microsoft SQL Server 2000中获得此项的一种方法是使用子查询来对具有相同ID和较低排序的行进行计数. SELECT *,(SELECT COUNT(*) FROM [SomeTable] counter WHERE t.id = counter.id AND t.order < counter.order) AS row_num FROM [SomeTable] t 提示:2010年不久,您的SQL Server将足够老,可以开车. 如果您使用SQL Server 2005或更高版本,您将获得诸如ROW_NUMBER()OVER(PARTITION …)等精彩的新功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |