首页 > 数据库技术 > 详细

SQL循环索引

时间:2015-01-06 17:39:46      阅读:237      评论:0      收藏:0      [点我收藏+]
declare @tbl table(order_id varchar(20),dates datetime)
insert @tbl(order_id,dates)
select A,2014-1-1 union
select A,2014-2-1 union
select A,2014-2-2 union
select B,2014-1-1 union
select C,2014-1-1 union
select D,2014-1-1 union
select D,2014-1-2 union
select E,2014-12-1 union
select E,2014-12-2 union
select 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,dates
select @index=1,@row=1,@count=@@rowcount

while @row<=@count
begin
    --首次循环
    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+1
end
select * from #tbl
drop table #tbl

 

SQL循环索引

原文:http://www.cnblogs.com/myjacky/p/4206250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!