2

テーブルに varchar であるフィールドがあり、アルファベット、数値、および英数字の混合値が含まれています。

そのフィールドから、長さが 3 文字でアルファベットのみの値のみを選択したいと思います。

オラクルを使用しています。

サンプルデータ:

AAA
BBB
12345
CCC25
DDDDD

select ステートメントは以下のみを返す必要があります。

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 に答える