【发布时间】:2019-01-30 19:59:32
【问题描述】:
我有一个表,它有 2 列:ID 和 JOB_Description(Text)。 我想编写一个 oracle SQL 来提取 与常规模式匹配的描述列。
但是,我已经学会了如何从具有以下 SQL 的字符串中提取匹配的子字符串,但我不知道将以下 SQL 一次性应用于上述表(列:JOB_Description)上的所有数据。
SQL 从字符串中获取所有匹配的匹配项:
SELECT REGEXP_SUBSTR(JOB_Description, '(ABC|DE)([[:digit:]]){5}', 1, LEVEL) AS substr
FROM (
select 'Please help to repair ABC12345, DE22222' as JOB_Description
from DUAL)
CONNECT BY LEVEL <= REGEXP_COUNT(JOB_Description, '(ABC|DE)([[:digit:]]){5}');
【问题讨论】:
-
只需将内部查询中的字符串替换为列名即可。
-
@VamsiPrabhala 在这种情况下不会这样做,因为 CONNECT BY
-
你有一个额外的独特的列吗?还是职位描述独一无二?
-
ID 是唯一的,谢谢
标签: sql regex oracle regexp-substr