none
Sql 写法 RRS feed

  • 问题

  • 原数据如下:

    a_id,b_id

    a12,b1

    a13,b1

    a16,b1

    a17,b2

    a11,b2

    a23,b2

    a26,b2

    a32,b3

    要求查询出数据如下:

    a_id,b_id,无标题

    a12,b1,1

    a13,b1,2

    a16,b1,3

    a17,b2,1

    a11,b2,2

    a23,b2,3

    a26,b2,4

    a32,b3,1

    2010年4月7日 9:39

答案

  • 2005:
    ;with cte
    as
    ( select a_id,b_id,rid = row_number() over (partition by b_id order by getdate())
      from tablename
    )
    select * from cte
    
    2000:
    select a_id,b_id,rid =(select count(1) from tablename where b_id = a.b_id and a_id < a.a_id)+1
    from tablename a

    More: blog.csdn.net/happyflystone
    • 已标记为答案 steven_lsy 2010年4月7日 10:25
    2010年4月7日 10:08

全部回复