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



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



один из них никогда не является нулевым, но один из них иногда равен нулю.



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



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

693   5  

5 ответов:

похоже, вы работаете в одной таблице что-то вроде этого:

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 в данной строке не равно null, обновление не является op.

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

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

update some_table set null_column = not_null_column where null_column is null

обновление YourTable
Набор ColumnB = ColumnA
Где
ColumnB РАВНО NULL
И ColumnA НЕ NULL;

Comments

    Ничего не найдено.