Обновить SQL: взять значение из одного столбца и заменить ноль в другом - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть таблица, которая содержит старые, устаревшие данные вместе с новыми данными. Старые данные не имеют всех полей, заполненных как новые данные. Я хочу обновить старые данные, чтобы они соответствовали новым материалам. Поля являются целыми и представляют собой идентификаторы пользователей. В поле Created_By по умолчанию должно быть указано User_ID - это означает, что в устаревших данных мы устанавливаем значение create_by, совпадающее с user_id.

Примеры полей:

Created_By | User_ID
NULL       | 1234
NULL       | 2345
NULL       | 1234
NULL       | 6742
1234       | 1234
2345       | 1234

Так что я хочу обновить только значения NULL. Однако я не знаю, как получить идентификатор_пользователя для каждой строки.

Примерно так:

update my_table
set Created_By = ??? (the respective User_ID for that row)
where Created_By is null

Итак, обновление должно выглядеть так:

Created_By | User_ID
1234       | 1234
2345       | 2345
1234       | 1234
6742       | 6742
1234       | 1234
2345       | 1234

1 Ответ

8 голосов
/ 21 февраля 2012
update my_table
set Created_By = User_ID
where Created_By is null
...