首页 > 代码库 > SQL循环索引

SQL循环索引

declare @tbl table(order_id varchar(20),dates datetime)insert @tbl(order_id,dates)select A,2014-1-1 unionselect A,2014-2-1 unionselect A,2014-2-2 unionselect B,2014-1-1 unionselect C,2014-1-1 unionselect D,2014-1-1 unionselect D,2014-1-2 unionselect E,2014-12-1 unionselect E,2014-12-2 unionselect E,2014-12-3 declare @index int,@count int,@row int,@item_order varchar(20),@current_order varchar(20)select identity(int,1,1) as id,order_id,dates,cast(0 as int) as row_index into #tbl from @tbl order by order_id,datesselect @index=1,@row=1,@count=@@rowcountwhile @row<=@countbegin    --首次循环    if isnull(@item_order,‘‘)=‘‘        select     @item_order=order_id from #tbl where id=@row    --已经有做循环    else    begin        select     @current_order=order_id from #tbl where id=@row        if @current_order<>@item_order        begin            set @index=1            set @item_order=@current_order        end    end    --更新序列号    update #tbl set row_index=@index where id=@row    set @index=@index+1    set @row=@row+1endselect * from #tbldrop table #tbl

 

SQL循环索引