34,590
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE #t
(
id INT ,
目标 INT,
实现目标 INT
)
INSERT INTO #T(id,目标) VALUES(1,1)
INSERT INTO #T(id,目标) VALUES(2,1)
INSERT INTO #T(id,目标) VALUES(3,2)
INSERT INTO #T(id,目标) VALUES(4,2)
INSERT INTO #T(id,目标) VALUES(5,2)
INSERT INTO #T(id,目标) VALUES(6,3)
INSERT INTO #T(id,目标) VALUES(7,3)
INSERT INTO #T(id,目标) VALUES(8,1)
INSERT INTO #T(id,目标) VALUES(9,1)
INSERT INTO #T(id,目标) VALUES(10,2)
INSERT INTO #T(id,目标) VALUES(11,2)
INSERT INTO #T(id,目标) VALUES(12,4)
INSERT INTO #T(id,目标) VALUES(13,3)
INSERT INTO #T(id,目标) VALUES(14,2)
INSERT INTO #T(id,目标) VALUES(15,2)
INSERT INTO #T(id,目标) VALUES(16,2)
INSERT INTO #T(id,目标) VALUES(17,2)
INSERT INTO #T(id,目标) VALUES(18,2)
INSERT INTO #T(id,目标) VALUES(19,3)
INSERT INTO #T(id,目标) VALUES(20,4)
INSERT INTO #T(id,目标) VALUES(21,2)
INSERT INTO #T(id,目标) VALUES(22,3)
DECLARE @ma INT,@mi int
DECLARE @目标 INT
DECLARE @i INT =1
SELECT @目标=目标 FROM #t WHERE id=1
WHILE @@ROWCOUNT<>0
BEGIN
SELECT @mi=MIN(id),@ma=MAX(id) FROM #t WHERE 目标=@目标 AND 实现目标 IS NULL
UPDATE #t SET 实现目标=@i WHERE id BETWEEN @mi AND @ma
SET @i=@i+1
SELECT TOP 1 @目标=目标 FROM #t
WHERE 实现目标 IS NULL
ORDER BY id
END
SELECT * FROM #t
DROP TABLE #t
看不懂,建议贴出初始表,和想要实现的效果