2016-05-25 13 views
-1

Ich habe eine Orakel 11g Tabelle. Die Daten in einer SpalteA sind RS_X, RS_2, RS_3 etc.Orakel 11g regulären Ausdruck Muster

Wenn die Daten 'X' nach RS_ sind, dann sollte der Ausgang auf '-1' gesetzt werden.

kann jemand bitte lassen Sie mich wissen, wie kann ich das tun.

Dank Pavan

Antwort

0

Sie können eine Auswahl dekodieren und substr verwenden

select decode(substr(columnA, 4,1),'X', -1, columnA) from my_table; 

oder mit dem Zustand

select -1 from my_table 
where substr(columnA, 4,1) = 'X' ; 
+0

substr muss von 4, nicht 3 durchgeführt werden, da 3 '_' ist. – SubhasisM

+0

@subhasisM danke ich aktualisiere die Antwort – scaisEdge

0

Verwenden Sie die folgende Abfrage, um die Ausgabe zu erhalten -

select col1,decode(substr(col1,4,1),'X',-1,1) from test1 

würde der Ausgang sein wie -

RS_1 1 
RS_2 1 
RS_3 1 
RS_X -1 
1

Wenn Sie diese mit REGEX tun wollen dann diese SQL verwenden.

Alle Datensätze mit "RS_X" am Anfang ihres Wertes in SpalteA haben den Wert in Ausgabe auf -1 gesetzt.