给楼主建议:转移到sql板块更易得到结果

解决方案 »

  1.   

    只是循环0,1的话,那用 index == ((id+1) % 2) 就可以了
      

  2.   


    不是0,1 如果有第3个 A需要 A的index 是2 
      

  3.   

    1        A         0    ---------> 取 rownum 然后 count 出
      
     2        A          1 3       B           0 4        B          1
      
      

  4.   


    不是0,1 如果有第3个 A需要 A的index 是2 
    通过name遍历吧,将name作为key,出现最大次数作为value存map中。
    每次遍历时,从map中按name取,如果没取到,那就把当前name入key,value 设为0.
    同时给当前的name对应的index设为0.
    如果有key存在,那将value值加1 再存进map,同时当前name的index就是加1 后的value值。
    如果必须要用sql去搞,那就坐等大牛来解决 
      

  5.   

    select t2.ID,t2.NAME,count(*)-1 [INDEX] from table_1 t1,table_1 t2 where t1.NAME=t2.NAME and t1.ID<=t2.ID group by t2.ID,t2.NAME
      

  6.   

    [index]是关键字
    select *, (select count(*) from test where name = t.name and id < t.id) index1 from test t order by id asc
      

  7.   

    2005以上可以用如下,2000可以用樓上的 select id,name,row_number() over(partition by name order by id)-1 as [index]
     from tab
      

  8.   


    SELECT ID,NAME,ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY ID)-1 AS [INDEX] FROM D
     from d
      

  9.   

    select id,name,[index]=(select count(1) from [table] u2 where u1.name=u2.name and u2.id<u1.id) from [table] u1