У меня есть таблица базы данных:
Col1 | Col2 | Col3
------------------
1 | 2 | -
2 | 3 | -
3 | 4 | -
4 | 5 | -
В столбцах 1 и 2 есть данные, но 3 пусто.
Чего я хочу добиться, это установить Col3
в значение Col1
предыдущей строки (технически предыдущую строку, в которой значение Col1
равно значению Col2
), чтобы получить это:
Col1 | Col2 | Col3
------------------
1 | 2 | -
2 | 3 | 1
3 | 4 | 2
4 | 5 | 3
Я пытаюсь выполнить запрос на обновление, чтобы добиться этого. Я пробовал такие вещи, как:
UPDATE Table
SET [cur].Col3 = [prev].Col1
FROM Table [cur], Table [prev]
WHERE [cur].Col1 = [prev].Col2
Но, похоже, это не работает для меня. SQL Server принимает синтаксис в хранимой процедуре, но при выполнении выдает ошибку:
Таблица неоднозначна
Что я делаю не так?
Примечание:
Данные в каждом столбце уже гарантированно уникальны, а каждая комбинация Col1
и Col2
уникальна.