2016-03-31 11 views
0

I mit 2 Spalten wie dieserWhere-Klausel nur zahlen konvertierbar Reihen

COLNUM | COLSTR 
--------------- 
1  | 001223 
2  | 002234 
3  | ds2-dd 
4  | 003344 

ich Abfrage wie diese

SELECT * FROM TABLE WHERE CAST(COLSTR AS NUMBER) IN (1223,3344) 

Aber seit 4. Reihe machen möchte eine Tabelle nicht werfen können Nummer, Abfrage fehlgeschlagen. Ich könnte eine Ansicht erstellen, die nicht umwandelbare Zeilen eliminiert, aber ich möchte dies mit einer Abfrage machen. Wie mache ich es?

Oracle 11g.

Danke.

+3

regulären Ausdruck zu verwenden, ich denke, es nicht zu werfen 'COLSTR' besser und mit String-Werten wie WHERE ltrim (COLSTR, '0') in ('1223' zu vergleichen, '3344') ' –

+0

' wo colstr wie '% 1223' oder colstr wie '% 3344''? – jarlh

+0

@jarlh '091223' ist wie '% 1223' und sollte nicht ausgewählt werden –

Antwort

1

würde ich vorschlagen,

SELECT * FROM TABLE WHERE REGEXP_LIKE(COLSTR,'^[0-9]$')