2009-09-24 14 views

risposta

64

provare questo codice:

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$' 

Questo fa in modo che tutti i caratteri partita.

+0

Okey è fatto correttamente, ma non mostra lo spazio compreso campo di dati. Come ottengo lo spazio compreso il campo dati da questa query. –

+2

@ Md.MahabuburRahman: Tutto uno spazio vuoto tra '9' e'] ':' '^ [A-Za-z0-9] + $' ' –

+0

è regexp efficiente? Ricordo di averlo fatto con isnumeric sull'ultimo personaggio. questo è interessante. grazie seleziona il nome da birt \t dove isnumeric (RIGHT (name, 1)) = 1 – chungtinhlakho

3

Prova questo:

REGEXP '^[a-z0-9]+$' 

Come espressione regolare non è case sensitive, tranne per i campi binari.

6

L'istruzione corrisponde a qualsiasi stringa che contenga una lettera o una cifra ovunque, anche se contiene altri caratteri non alfanumerici. Prova questo:

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$'; 

^ e $ richiedono l'intera stringa in modo che corrisponda piuttosto che solo una parte di esso, e + guarda per 1 o più caratteri alphanumberic.

Si potrebbe anche usare una classe di personaggio di nome, se si preferisce:

SELECT * FROM table WHERE column REGEXP '^[[:alnum:]]+$'; 
-5

Modificare il REGEXP al Like

SELECT * FROM table_name WHERE column_name like '%[^a-zA-Z0-9]%' 

questo funziona bene

0

c'è anche questo:

select m from table where not regexp_like(m, '^[0-9]\d+$') 

che seleziona le righe che contengono caratteri dalla colonna desiderata (che è m nell'esempio ma è possibile modificare).

La maggior parte delle combinazioni non funziona correttamente nelle piattaforme Oracle, ma è così. Condivisione per riferimento futuro.

-1

Prova questa

select count(*) from table where cast(col as double) is null; 
+0

Come funziona se "col" è "ABC"? – ebyrob

Problemi correlati