2017-09-11 2 views
0

Ich habe versucht, Informationen vor einem Prozentzeichen zu extrahieren, kann aber nicht herausfinden, wie. Meine Tabelle sieht wie folgt aus:Wie anzuwenden Escape-Zeichen (%) in substr (Oracle sql)?

NAME 
---------- 
20% on xy 
---------- 
buy 2 get 1 free 
---------- 
incentive 15% off 

-> Aus dieser Liste möchte ich nur in einer separaten Spalte, um die 20% in der ersten Reihe und der 15% in der dritten Reihe sehen

Dies ist Was ich versucht habe:

SELECT case when NAME like '%\%%' ESCAPE '\' 
      then substr('%\%%' ESCAPE '\', -2) 
      else 0 
     end as xy 
    FROM Data d 

Ich hoffe du verstehst was ich meine ... Kann mir jemand dabei helfen? Vielen Dank im Voraus!!

Und sorry für die falsche Formatierung, ich bin neu ..

Antwort

1

Ich denke, Ihre "LIKE" Teil richtig ist aber substr muss repariert werden:

SELECT case when NAME like '%\%%' ESCAPE '\' 
       then reverse(substr(reverse(NAME), instr(reverse(NAME), '%'), 3)) 
      else '0' 
      end as xy 
FROM Data d 
+0

Perfect, es funktioniert! Vielen Dank! – Elle