Обновление числового столбца новой строкой чисел, начинающейся с определенного номера - PullRequest
2 голосов
/ 06 января 2020

Итак, у меня есть таблица ДЕТАЛИ. Он имеет столбцы ИМЯ, ДАТА и НОМЕР. В настоящее время столбец Number выглядит примерно так:

NUMBER
300000  
300001  
300002  

В нем около 750 записей. Я хотел бы обновить столбец «Число» с порядковыми номерами, начиная с 400045, увеличившись на 1.

Кроме того, там уже есть несколько элементов с номером 400000 (т.е. между 400000 и 400045), поэтому я бы не стал Я не хочу их обновлять.

Я пробовал такие вещи, как:

DECLARE @id INT   
SET @id = 400000   
UPDATE **ITEMS**  
SET @id = **NUMBER** = @id + 1 

1 Ответ

2 голосов
/ 06 января 2020

Я полагаю, что приведенный ниже запрос достаточно обобщенный c, чтобы работать на вас -

UPDATE ITEMS
SET NUMBER = (SELECT rn 
              FROM (SELECT NUMBER, 
                           ROW_NUMBER() OVER (ORDER BY NUMBER) + 400045 rn
                    FROM ITEMS
                    WHERE NUMBER NOT BETWEEN 400000 AND 400045) X
              WHERE X.NUMBER = ITEMS.NUMBER)

Хотя вам не следует указывать имя столбца как число, так как это может сбить вас с толку.

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