本帖最后由 lizdqy 于 2009-12-08 16:30:38 编辑

解决方案 »

  1.   

    IF OBJECT_ID('tb') IS NOT NULL
      DROP TABLE tb
    GO
    CREATE TABLE tb(id int,名字 varchar(10))
    go
    insert into tb
    select     
    1  ,  '张三' union all select
    2   , '张三' union all select
    3   , '李四' union all select
    4   , '王五' union all select
    6   , '赵六' union all select
    7   , '赵六' union all select
    8 ,   '赵六' 
    go
    create FUNCTION dbo.f_tb(@name varchar(10)) 
    RETURNS varchar(8000) 
    AS 
    BEGIN 
        DECLARE @str varchar(8000) 
        SET @str = '' 
        SELECT @str = @str + '/' + convert (varchar(10),id)  FROM tb WHERE 名字=@name order by id
        RETURN STUFF(@str, 1, 1, '') 
    END 
    GO 
    select 名字,次数=COUNT(*),
    连续的id号=dbo.f_tb(名字)
    from tb 
    group by 名字/*------------
    李四    1    3
    王五    1    4
    张三    2    1/2
    赵六    3    6/7/8-------*/
    选查出连续次数大于1的,如例子中的张三,再根据1/2就是第一第二行啦,来做定点UPDATE