我知道这是一个经常被问到的问题,但仍然想知道如何去做。
我正在尝试从名称表中更新三个值,名字,中间名,姓氏。emplid 是从临时表中选择的。我想知道如何为此设置NVL。
查询块将如下所示:
update staging_table
set firstname, middlename,lastname =
(select firstname,middlename,last
from names
where names.emplid = staging_table.emplid)
我想检查空值,因为在某些情况下中间名是空的。
第二部分:到目前为止,我已经解决了这个问题,但是仍然想知道一种更好的技术,因为性能会受到影响。
截至目前,我已经使用了这个更新查询:
update staging_table set first_name = nvl((select first_name from names where emplid = staging_table.emplid),' ')
update staging_table set middle_name = nvl((select middle_name from names where emplid = staging_table.emplid),' ')
还有比这更好的技术吗?
我已经检查了coalesce
oracle 中的函数,但是检查了整个结果,如果任何一个参数为 null,那么只有这样,才会返回 null 值。在这里,我需要检查各个字段的空值。
感谢您的指导。