Oracle SQL 正则表达式

我在两个不同的列中有一个 , 分隔的字符串值,需要匹配这两列之间的特定值。 示例:

Column A: A123,B234,I555,K987
Column B: AAA1,A123,K987

我想检查 B234 中的值 Column A(从第 6 个位置开始)和 B234 来自 Column B(从第 11 个位置开始),如果它们是匹配与否。我有几百条这样的记录,需要检查这些值是否匹配。

spoonlee 回答:Oracle SQL 正则表达式

按照您的说法,您将比较“词”——column A 中的第二个词与 column B 中的第三个词(第 1 - 4 行中的示例数据;查询您可能是感兴趣从第 5 行开始):

SQL> with test (cola,colb) as
  2    (select 'A123,B234,I555,K987','AAA1,A123,K987' from dual union all
  3     select 'XYZ','DEF'                      from dual
  4    )
  5  select *
  6  from test
  7  where regexp_substr(cola,'\w+',1,2) = regexp_substr(colb,3);

COLA                COLB
------------------- ------------------------
A123,K987 AAA1,K987

SQL>
本文链接:https://www.f2er.com/893053.html

大家都在问