2016-04-18 10 views
0

Ich muss feststellen, ob der Wert numerisch ist oder nicht. Zum Beispiel hatte ich einen Datumswert mit dem Datentyp varchar2. Ich muss herausfinden, dass die Spalten nur numerisch sind oder nicht. Müssen Sie dies mit Fall in Oracle behandeln.bestimmen Spalte mit numerischen oder Zeichenfolge in Oracle

select case when d.data_type ='DATE' then to_char(to_date(v.value,'YYYYMMDD'),'DD-MM-YY') else v.value end as "Value" from data_type d , value v ; 

In diesem Beispiel kann der v.value Zeichenfolgenwerte enthalten. Aber ich muss überprüfen, ob die Spalte einen Wert als Zahl in der Case-Anweisung hat. Bitte helfen Sie mir dabei. Erwartete Abfrage ist

select case when d.data_type ='DATE' and 'd.value haing number only' then to_char(to_date(v.value,'YYYYMMDD'),'DD-MM-YY') else v.value end as "Value" from data_type d , value v ; 

Antwort

1

Sie regexp_like verwenden können, um zu sehen, ob der Wert nur Zahlen hat:

select (case when regexp_like(date, '[^0-9]') then 'NonNumeric' 
      else 'Numeric' 
     end) 

Hinweis: Dies ist nur für die Ziffern überprüft. Wenn Sie andere Zeichen zulassen (z. B. "-", ".", "+", ","), Kann der reguläre Ausdruck für diesen Zweck leicht geändert werden.

+0

Vielen Dank linoff. Es klappt –

Verwandte Themen