如何根据某些条件在 MSSQL 游标中跳过一行(迭代),我有一个可迁移数千条记录的 DTS,并且根据某些条件,某些记录不需要迁移,因为它们是重复的并且想要跳过这些记录。
知道如何在 MSSQL Cursor 中完成此操作吗?
我想最简单的方法是在游标内写入 IF 语句。如果条件为假,您将跳过记录。
DECLARE @ID INT
DECLARE Curs CURSOR FAST_FORWARD
DECLARE @Cnt INT
CREATE TABLE ##Duplicates (ID INT, CarColor VARCHAR (50) )
FOR
SELECT DISTINCT CarID
FROM dbo.CarPark
WHERE CarColour <> 'red'
ORDER BY CarID
OPEN Curs
FETCH NEXT FROM Curs INTO @ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO ##Duplicates
SELECT CarID, CarColor
FROM dbo.CarPark
WHERE ID = @ID;
SET @Cnt = (SELECT Count(*) FROM ##Duplicates WHERE ID = @ID) ;
IF @Cnt < 2
THEN /* Migrate */
ELSE PRINT 'Duplicate'
END
FETCH NEXT FROM Curs INTO @ID
END
CLOSE Curs
DEALLOCATE Curs;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)