обновить дату столбца таблицы в базе данных - PullRequest
0 голосов
/ 11 сентября 2018

Как я могу обновить столбец даты таблицы в базе данных (mssql) на 1 год для данных на 1-ю 1000, на 2 года для данных на 1-ю 1000 и так далее ... Я знаю, как реализовать это, назначив временный идентификатор, ноЕсть ли способ обновить данные в виде цикла ??

например: предположим, что если у меня есть 6000 данных в таблице со столбцом join_date в диапазоне от 2012-01-01 до 2017-01-01, упорядоченном в порядке возрастания, я хочу обновить первую тысячу строк, увеличив ее на 1год, строки 2 тыс. также на 1 год и т. д. Если мои первые тысячи данных содержат объединенную дату в 2012 году, я хочу обновить их до 2013 года, и если мои данные 2-й тысячи содержат объединенную дату в 2012–2013 годах,Я также хочу увеличить его на 1.

1 Ответ

0 голосов
/ 11 сентября 2018

Мы можем попытаться присвоить номер строки вашей таблице, а затем использовать его для обновления:

WITH cte AS (
    SELECT joined_date, ROW_NUMBER() OVER (ORDER BY joined_date) - 1 rn
    FROM yourTable
)

UPDATE cte
SET joined_date = DATEADD(year, (rn % 1000) + 1, joined_date);

Хитрость в том, что первые 1000 строк, которые получат номер строки от 0 док 999 включительно будет иметь значение rn % 1000 0, к которому мы добавляем 1, чтобы получить количество лет, которое нужно добавить.Следующие 1000 записей будут добавлены через 2 года и т. Д.

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