读书人

走过路过帮忙写个SQL查询,该如何处理

发布时间: 2012-03-05 11:54:02 作者: rapoo

走过路过帮忙写个SQL查询
数据1
idis_one
10
21
31
40
50

数据2
idis_one
10
21
31
40
50
61
71
要统计最后1连续出现的次数,例如上面的数据1结果应该为0,数据2结果应该为2
这个语句应该这么写,不要用临时表或游标,谢谢


[解决办法]

create table Test
(
id int,
is_one int
)

insert Test select 1,0
insert Test select 2,1
insert Test select 3,1
insert Test select 4,0
insert Test select 5,0
insert Test select 6,1
insert Test select 7,1
insert Test select 8,1
insert Test select 9,0

declare @max int
declare @max_1 int
declare @max_0 int
select @max=max(id) from Test
select @max_1=max(id) from Test where is_one=1
select @max_0=max(id) from Test where is_one=0

declare @sum int
set @sum=0

if @max <> @max_1
print @sum
else
begin
set @sum=@max_1-@max_0
print @sum
end

读书人网 >SQL Server

热点推荐