码迷,mamicode.com
首页 > 数据库 > 详细

SQL循环索引

时间:2015-01-06 17:42:42      阅读:150      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!