2

我的表中有一个字段是 varchar,包含字母、数字和混合字母数字值。

我只想从该字段中选择长度为 3 个字符且仅按字母顺序排列的值。

我正在使用甲骨文。

样本数据:

AAA
BBB
12345
CCC25
DDDDD

选择语句应该只返回:

AAA
BBB

我尝试了以下方法,但没有成功。这没有返回任何东西。

select name from MyTable where name like '[a-Z][a-Z][a-Z]';

然后我尝试了以下想法,它会返回所有 3 个字符的长结果,它只返回所有内容:

select name from MyTable where name like '%%%';
4

1 回答 1

7

您可以使用该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
于 2012-11-09T21:09:32.043 回答