在一表中有如下字段
假定表名为manage,字段名为:dan
dan字段有如下的值:双





单问题:如何查询dan字段中单连续出先了几次,然后隔了几次的双,再出现单

解决方案 »

  1.   

    我用相关子查询模拟的游标~
    生成以下结果后,单连续出先了几次,然后隔了几次的双,再出现单就好求多了,无非就是对单进行汇总即可,将以下查询做派生表做就可以了~
    DECLARE @T TABLE(ID INT,DAN VARCHAR(20))
    INSERT @T SELECT 1,'双'
    UNION ALL SELECT 2,'单'
    UNION ALL SELECT 3,'单'
    UNION ALL SELECT 4,'双'
    UNION ALL SELECT 5,'双'
    UNION ALL SELECT 6,'单'SELECT DAN,
     COUNT1=(SELECT COUNT(1)+1 FROM @T B WHERE DAN=A.DAN AND ID=A.ID-1)
    FROM @T A