SQLServer 某列值连续4行相同则输出其1行(测试)

SQLServer 某列值连续4行相同则输出其1行(测试),第1张

概述-- drop table testcreate table test(name varchar(20),value int)insert into test(name,value)values('aa',1),('pp',1),('hh',-1),('ff',1),('ee',1),('ff',1),('aa',1),('jj',1),('ee',-1),('aa',1),('oo',


--	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行(测试)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存