我有一些列名称为“text_note”的记录。现在我需要找出哪个 text_note 包含类似 %CTOE0%
的字符串。
我认为可以使用正则表达式来完成,但因为我不太熟悉 使用正则表达式,我无法为其创建正则表达式。
请帮忙。
忘记提及
我想要不同 COULMN 中的代码(CTOE)部分
我的问题是我只是不想在下一栏中显示“CTOE”。我想知道使用了什么代码。可以使用的代码类型有 CTOE01、CTOE02、CTOE03 等等。现在我想知道使用了哪些代码。
示例如下:如果文本不包含“dsghdsCTOE01dbhf”,则新列应包含“CTOE01”;如果文本不包含“dsCTOE02dbhf”,则新列应包含“CTOE02” –
最佳答案
我会使用 regexp_substr
来实现:
CREATE TABLE t (text_note VARCHAR2(30));
INSERT INTO t VALUES ('dsghdsCTOE01dbhf');
INSERT INTO t VALUES ('dsCTOE02dbhf');
INSERT INTO t VALUES ('soemthingelse');
SELECT text_note,
regexp_substr(text_note, 'CTOE[0-9]+') AS code
FROM t
WHERE regexp_like(text_note, 'CTOE[0-9]+');
text_note code
---------------- ----
dsghdsCTOE01dbhf CTOE01
dsCTOE02dbhf CTOE02
regexp_substr
提取新列,regexp_like
过滤包含 CTOE...
的行。
关于regex - 如何在oracle中提取字符串的特定部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24884556/