web-dev-qa-db-fra.com

Oracle SQL - REGEXP_LIKE contient des caractères autres que a-z ou A-Z

Je souhaite créer une requête dans laquelle je sélectionne tous les enregistrements contenant des caractères autres que a-z ou A-Z

donc quelque chose comme ça

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

21
Tom

Le ^ annule une classe de caractères:

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

Quelque chose comme

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

devrait marcher

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
9
Justin Cave

Essaye ça:

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

si vous voulez que ne contient aucun de a-z et a-z:

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

quelque chose comme:

"98763045098" ou "!% 436% $ 7% $ * #"

ou d'autres langues comme le persan, l'arabe et ... comme ceci:

"خلیج فارس"

0
Omid-RH