我有一些列名为" text_note"的记录。现在我需要找出哪个text_note包含像%CTOE0%
这样的字符串。
我认为可以使用正则表达式来完成,但因为我并不那么熟悉 使用正则表达式,我无法为其创建正则表达式。
请帮助。
饶恕
我想要一个不同的COULMN的代码(CTOE)
我的问题是,我只是不想表现出“CTOE'在下一栏。我想知道使用了什么代码。可以使用的代码类型是CTOE01,CTOE02,CTOE03和SO ON。现在我想知道使用了哪些代码。
示例如下:如果文本不包含" dsghdsCTOE01dbhf"那么新专栏应该包含" CTOE01"如果文本不包含" dsCTOE02dbhf"那么新专栏应该包含" CTOE02" -
答案 0 :(得分:2)
我会使用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...
的行。
答案 1 :(得分:0)
如果您的意思是该字段以%
开头和结尾,并且只包含大写字母和数字:
SELECT * FROM yourtable
WHERE REGEXP_LIKE(text_note, '^%[A-Z0-9]+%$', 'c');
答案 2 :(得分:0)
修改强>
SELECT text_note,
substr(text_note, (instr(text_note, 'CTOE0')), 6) AS CODE
FROM table where text_note like '%CTOE0%';
在上面的查询中,我假设你的代码长度只有6个字符,并使用substr函数来捕获6个字符的代码。上面的查询得到了所需的ouptut。
原始答案:
看看这对你有帮助!
Select text_note, 'CTOE' CODE from table
where text_note like '%\%CTOE0\%%;
我认为%也是搜索字符串的一部分,并试图按照给定的here
来逃避百分比