SQL устанавливает значения одного столбца равными значениям другого столбца в той же таблице
У меня есть таблица с двумя столбцами DATETIME.
один из них никогда не является нулевым, но один из них иногда равен нулю.
Мне нужно написать запрос, который установит все нулевые строки для столбца B равными значениям в столбце A.
Я пробовал этот пример, но SQL в выбранном ответе не выполняется, потому что MySQL Workbench, похоже, не нравится из обновления.
5 ответов:
похоже, вы работаете в одной таблице что-то вроде этого:
update your_table set B = A where B is 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
Comments