Согласно вашему комментарию к другому ответу,
UPDATE Network_Plant_Items
SET FULL_ADDRESS = 'foobar' || COALESCE(BARCODE, MANUF_SERIAL_NUMBER)
WHERE BARCODE IS NOT NULL OR MANUF_SERIAL_NUMBER IS NOT NULL
Если вы хотите добавить это к текущему значению FULL_ADDRESS, как я понимаю из исходного вопроса,
UPDATE Network_Plant_Items
SET FULL_ADDRESS = FULL_ADDRESS || COALESCE(BARCODE, MANUF_SERIAL_NUMBER)
WHERE BARCODE IS NOT NULL OR MANUF_SERIAL_NUMBER IS NOT NULL
COALESCE()
возвращает первый ненулевой аргумент, который вы передаете ему. См. Справочную страницу Oracle .
Так же, как и общий FIY, NVM()
, который был предложен другими ответами, является старой специфической для Oracle версией COALESCE()
, которая работает примерно так же, но поддерживает только два аргумента и оценивает второй аргумент, даже если первый из них не нулевой (или, другими словами, он не оценивается как короткое замыкание). Как правило, этого следует избегать, и вместо него следует использовать стандарт COALESCE
, если только вам явно не нужно оценивать все аргументы, даже если в этом нет необходимости.