我的表中有 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')