-- drop table testcreate table test(name varchar(20),value int)insert into test(name,value)values('aa',1),('pp',('hh',-1),('ff',('ee',('aa',('jj',('oo',('uu',('bb',('ll',-1)select * from test
以上红框中是要输出的结果:输出为1的,连续4行为1则输出第四行值
7 aa 1
13 ff 1
17 ll 1
使用游标的方法:
declare @ID intdeclare @name varchar(20)declare @value intdeclare @ID2 intdeclare @value2 intdeclare @mk intset @mk = 1declare cur cursor local fast_forward for select row_number()over(order by (select 0)) as ID,name,value from testopen curfetch next from cur into @ID,@name,@valuewhile @@fetch_status = 0begin set @ID2 = @ID set @value2 = @value fetch next from cur into @ID,@value if(@ID2+1=@ID and @value2 = @value and @value=1) begin set @mk = @mk +1 if (@mk = 4) begin --结果输出或者插入到某个表中 select @ID as ID,@name as name,@value as value set @mk = 0 end end else set @mk = 1endclose curdeallocate cur总结
以上是内存溢出为你收集整理的SQLServer 某列值连续4行相同则输出其1行(测试)全部内容,希望文章能够帮你解决SQLServer 某列值连续4行相同则输出其1行(测试)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)