求教一个查询语句,生成序列号
tab1
serial_no file_name,file_flag
12 145.txt 0
13 145.txt 2
14 57.doc 0
15 67.doc 1
16 67.doc 2
17 36.doc 0
18 36.doc 1
查询要得到以下结果
ID serial_no file_name
1 12 145.txt
13 145.txt
2 14 67.doc
15 67.doc
16 67.doc
3 17 36.doc
18 36.doc
每一个file_flag为0时表示开始标志2为结束,请教这个查询语句,在线等待
------解决方案--------------------rank排序
------解决方案--------------------SQL code
with cet1 as
(select dense_rank()over(order by serial_no)rn,serial_no from tb where file_name = 0)
select isnull(cast(rn as varchar(10)),'')ID,a.serial_no, a.file_name
from tb a left join cet1 b on a.serial_no = b.serial_no