Sus*_*sie 2 regex sql database oracle
我的表中有一个varchar字段,包含字母,数字和混合字母数字值.
我想只选择该字段中长度为3个字符且仅按字母顺序排列的值.
我正在使用oracle.
样本数据:
AAA
BBB
12345
CCC25
DDDDD
Run Code Online (Sandbox Code Playgroud)
select语句应该只返回:
AAA
BBB
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容,但没有奏效.这没有任何回报.
select name from MyTable where name like '[a-Z][a-Z][a-Z]';
Run Code Online (Sandbox Code Playgroud)
然后我尝试了下面的想法,它将返回所有3个字符长的结果,它只是返回所有内容:
select name from MyTable where name like '%%%';
Run Code Online (Sandbox Code Playgroud)
你可以使用这个regexp_like功能
SQL> with x as (
2 select 'aaa' str from dual union all
3 select 'bbb' from dual union all
4 select '12345' from dual union all
5 select 'CCC25' from dual union all
6 select 'DDDDD' from dual
7 )
8 select *
9 from x
10 where regexp_like( str, '^[[:alpha:]]{3}$' );
STR
-----
aaa
bbb
Run Code Online (Sandbox Code Playgroud)