在一表中有如下字段
假定表名为manage,字段名为:dan
dan字段有如下的值:
双
单
单
单
双
双
单
问题:如何查询dan字段中单连续出先了几次,然后隔了几次的双,再出现单
我用相关子查询模拟的游标~
生成以下结果后,单连续出先了几次,然后隔了几次的双,再出现单就好求多了,无非就是对单进行汇总即可,将以下查询做派生表做就可以了~
- SQL code
-
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