gpt4 book ai didi

sql - 如何根据某些条件跳过 MSSQL Cursor 中的一行(迭代)?

转载 作者:行者123 更新时间:2023-12-03 23:53:36 24 4
gpt4 key购买 nike

如何根据某些条件在 MSSQL Cursor 中跳过一行(迭代),我有一个 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;

关于sql - 如何根据某些条件跳过 MSSQL Cursor 中的一行(迭代)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22294127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com