Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅选择三个字符长度的字母字符串_Sql_Regex_Database_Oracle - Fatal编程技术网

Sql 仅选择三个字符长度的字母字符串

Sql 仅选择三个字符长度的字母字符串,sql,regex,database,oracle,Sql,Regex,Database,Oracle,我的表中有一个字段是varchar,包含字母、数字和混合字母数字值 我只想从该字段中选择长度为3个字符且仅为字母的值 我正在使用oracle 样本数据: AAA BBB 12345 CCC25 DDDDD select语句应仅返回: AAA BBB 我尝试了以下方法,但没有成功。这没有返回任何内容 select name from MyTable where name like '[a-Z][a-Z][a-Z]'; 然后我尝试了以下方法,认为它将返回所有3个字符长的结果,它只返回所有内容:

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

我只想从该字段中选择长度为3个字符且仅为字母的值

我正在使用oracle

样本数据:

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 '%%%';

您可以像函数一样使用
regexp\u

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

这是否意味着我必须为表中的每个值编写select语句,就像上面第2-6行所做的那样?我有数千行(准确地说是64000行)。这只是一个例子。使用“选择”中的代码,其中x是您的表名,str是您的column@javaStudent-您可以直接查询您拥有的任何表(要么完全摆脱
WITH
子句,要么用针对实际表的查询替换我编写的查询)。由于我们无法访问您的表或数据,显示查询工作的最简单方法是将
子查询组合在一起,手动组合您实际提供给我们的数据。谢谢。我花了将近两个小时试图弄明白这一点。