单个PL / SQL查询中的多个regexp_replace,将Alpha替换为'A',将数字替换为'1'

时间:2017-11-02 15:26:43

标签: sql regex oracle

我需要一个PL / SQL查询,用'A'替换​​字母字符,并用'1'替换数字字符。

例如,如果我有一份英国登记牌照清单:

  • YA11 ABC
  • AB10 EPC
  • CD11 ABC

我最终会得到一份明确的清单

  • AA11 AAA

我可以单独运行查询:

select distinct regexp_replace(FIELDNAME, '[A-Z]', 'A') 
from TABLE1;

select distinct regexp_replace(FIELDNAME, '[0-9]', '1') 
from TABLE1;

我知道SO上的一些天才将知道如何在单个查询中实现这一点: - )

1 个答案:

答案 0 :(得分:1)

您可以轻松地将其组合:

select distinct regexp_replace(regexp_replace(FIELDNAME, '[0-9]', '1'),
                '[A-Z]', 'A') as result
from (SELECT 'AB10 EPC' AS FIELDNAME FROM dual) s;

<强> Rextester demo