如何从数据库中读取出连续的数据
id value
1 1
2 1
3 1
4 1
5 0
6 1
7 1
8 0
9 1
正序读取出value为1的所有行 直到遇到不为1的停止,未知在某行会遇到value=0
id value
1 1
2 1
3 1
4 1
要求能否在不用存储过程的情况下用sql实现
Select id, value from table where value=1
order by id
那你会把
6 1
7 1
9 1
都读取出来的
select id,value from table where Id<(select top 1 id from table where value!=1 order by id)
如果ID为GUID呢
@芒果の冰: 试试这个,加个rownumber列:
select top
((select top 1 a.rown from (select *,ROW_NUMBER() over(order by id) rown from table) a
where a.value=0)-1) *
from table order by id
@Weca: 如果表数据多了
select *,ROW_NUMBER() over(order by id) rown from TTTT
性能损耗会很大
楼上应该是正解,就差在末尾再加上 order by id