Вы можете попробовать следующее обновление:
UPDATE yourTable t1
SET Message = (SELECT t2.Message FROM yourTable t2
WHERE t2.ID = t1.ID AND t2.Message IS NOT NULL)
WHERE
Message IS NULL;
Это обновление предназначается для всех записей, имеющих сообщение NULL
(отсутствует), и заменит это сообщение значением, отличным от NULL
из записи. имея тот же ID
. Обратите внимание, что мы могли бы также написать эту логику c, используя объединение обновлений, но точный синтаксис будет зависеть от вашей конкретной базы данных, которую вы не упомянули.
Для SQL Сервер, вот один из способов сделать это, используя update join logi c:
WITH cte AS (
SELECT t1.Message AS msgTarget, t2.Message AS msgSource
FROM yourTable t1
INNER JOIN yourTable t2 ON t2.ID = t1.ID
WHERE t1.Message IS NULL AND t2.Message IS NOT NULL
)
UPDATE cte
SET msgTarget = msgSource;