テーブルに 4 つの列があります。これはデータのクリーンアップ タスクに近いので、パフォーマンスについては特にこだわりません。それでも、可能なオプションを知りたいです。
以下のクエリを見てください。
SELECT * FROM dsopi_person_addr_rule ADDR WHERE
addr.src_address_line1 LIKE '%DEP%'
OR addr.src_address_line2 LIKE '%DEP%'
OR addr.src_address_line3 LIKE '%DEP%'
OR addr.src_address_line4 LIKE '%DEP%';
DEP と同様に、あと 10 件の一致があります。4 つの住所行すべてに対して各一致を繰り返す必要があります。それを行うより良い方法はありますか?私は個人的に何度も書くのが嫌いです。
**更新:以下が答えです
SELECT *
FROM dsopi_person_addr_rule ADDR
WHERE regexp_like (UPPER(addr.src_address_line1), 'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG')