Oracle SQL - REGEXP_LIKE包含a-z或A-Z以外的字符

时间:2012-03-07 15:53:03

标签: sql regex oracle

我想创建一个查询,我选择所有包含非a-z或A-Z字符的记录

这样的事情

SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '![A-Z] [a-z]')

4 个答案:

答案 0 :(得分:35)

^否定了一个字符类:

SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '[^A-Za-z]')

答案 1 :(得分:9)

这样的东西
select *
  from foo
 where regexp_like( col1, '[^[:alpha:]]' ) ;

应该有效

SQL> create table foo( col1 varchar2(100) );

Table created.

SQL> insert into foo values( 'abc' );

1 row created.

SQL> insert into foo values( 'abc123' );

1 row created.

SQL> insert into foo values( 'def' );

1 row created.

SQL> select *
  2    from foo
  3   where regexp_like( col1, '[^[:alpha:]]' ) ;

COL1
--------------------------------------------------------------------------------
abc123

答案 2 :(得分:0)

试试这个:

select * from T_PARTNER 
where C_DISTRIBUTOR_TYPE_ID = 6 and
translate(C_PARTNER_ID, '.1234567890', '.') is null;

答案 3 :(得分:0)

如果您不希望包含a-z和A-Z中的任何一个:

SELECT * FROM mytable WHERE NOT REGEXP_LIKE(column_1, '[A-Za-z]')

类似:

“ 98763045098”或“!%436%$ 7%$ *#”

或其他语言,例如波斯语,阿拉伯语和...,例如:

“خلیجفارس”