Я пытаюсь установить курсор на цикл по столбцу в моей таблице и определить, закончилась ли последовательность. Если последовательность закончилась, я хочу вывести начальное и конечное значения.
Например:
00001
00002
00003
00004 -- End here and output 1-4
00007
00008
00009 -- End here and output 7-9
00011
00012
00013 -- End here and output 11-13
Я очень новичок в курсорах, но я верю, что именно так вы начинаете с ними обращаться:
DECLARE @Product bigint
DECLARE @ProductId nvarchar(100)
DECLARE @ProductCursor CURSOR
SET @ProductCursor = CURSOR FOR
SELECT
Products.Product,
Products.ProductId
FROM Products
OPEN @ProductCursor
FETCH NEXT FROM @ProductCursor INTO
@Product,
@ProductId
WHILE @@FETCH_STATUS = 0
BEGIN
--Do something
SELECT 'aaa'
FETCH NEXT FROM @ProductCursor INTO
@Product,
@ProductId
END
CLOSE @ProductCursor
DEALLOCATE @ProductCursor
Я думаю, что я должен перебрать значения от 1 до 13 и проверить, что значение, которое было до него, равно текущему значению. Например, если мы находимся на 0004, мы должны сохранить предыдущее значение (00003) в переменной, добавить 1 и проверить, равно ли оно текущему значению (00004). Если это не так, мы должны завершить текущую последовательность и вывести начальное и конечное значения. Я не совсем уверен, как это сделать, может быть, установить счетчик?