これはかなり頻繁に尋ねられる質問であることは知っていますが、それでも、これを行う方法について知りたい.
名前テーブルから firstname、middlename、lastname の 3 つの値を更新しようとしています。emplid は、ステージング テーブルから選択されます。これにNVLを設定する方法について知りたいです。
クエリ ブロックは次のようになります。
update staging_table
set firstname, middlename,lastname =
(select firstname,middlename,last
from names
where names.emplid = staging_table.emplid)
ミドルネームが null の場合があるため、null 値を確認したい。
パート 2: 現時点では回避策がありますが、パフォーマンスが影響を受けているため、より良い手法を知りたいと考えています。
今のところ、次の更新クエリを使用しています。
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
オラクルで関数をチェックしましたが、それは結果全体をチェックし、パラメータのいずれかがnullの場合にのみ、null値が返されます。ここでは、個々のフィールドの null 値を確認する必要があります。
ご指導ありがとうございます。