SQL задает значения одного столбца, равного значениям другого столбца в той же таблице

У меня есть таблица с двумя столбцами DATETIME.

Один из них никогда не имеет NULL, но один из них иногда является NULL.

Мне нужно написать запрос, который будет устанавливать все строки NULL для столбца B равными значениям в столбце A.

Я пробовал этот пример, но SQL в выбранном ответе не выполняется, потому что MySQL Workbench, похоже, не нравится FROM в UPDATE.

Похоже, вы работаете в одной таблице, так что примерно так:

update your_table set B = A where B is null 
 UPDATE YourTable SET ColumnB=ColumnA WHERE ColumnB IS NULL AND ColumnA IS NOT NULL 

Я бы сделал это так:

 UPDATE YourTable SET B = COALESCE(B, A); 

COALESCE – это функция, которая возвращает свой первый ненулевой аргумент.

В этом примере, если B в заданной строке не является нулевым, обновление является no-op.

Если B равно null, COALESCE пропускает его и вместо этого использует A.

Я не думаю, что другой пример – это то, что вы ищете. Если вы просто обновляете один столбец из другого столбца в той же таблице, вы должны использовать что-то вроде этого.

 update some_table set null_column = not_null_column where null_column is null 

UPDATE YourTable
SET ColumnB = ColumnA
ГДЕ
Столбец B NULL
AND ColumnA НЕ НЕТ;