Подтвердить что ты не робот

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

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

Один из них никогда не имеет NULL, но один из них иногда имеет значение NULL.

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

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

4b9b3361

Ответ 1

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

update your_table
set B = A
where B is null

Ответ 2

UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL 
AND ColumnA IS NOT NULL

Ответ 3

Я бы сделал это следующим образом:

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

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

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

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

Ответ 4

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

update some_table set null_column = not_null_column where null_column is null

Ответ 5

Вот пример кода, который может помочь вам скопировать столбец A в столбец B:

UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;