Курсор SQL для обхода столбца и определения диапазона последовательности - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь установить курсор на цикл по столбцу в моей таблице и определить, закончилась ли последовательность. Если последовательность закончилась, я хочу вывести начальное и конечное значения. Например:

 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). Если это не так, мы должны завершить текущую последовательность и вывести начальное и конечное значения. Я не совсем уверен, как это сделать, может быть, установить счетчик?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...