2017-09-11 21 views
0

私はパーセンテージ記号の前に情報を抽出しようとしましたが、方法を理解することはできません。 私のテーブルには、次のようになります。substr(oracle sql)でエスケープ文字(%)を適用する方法は?

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

- >このリストから、私は唯一の第三列に別々の列に最初の行の20%と15%を見たいと思って

これは、私が試したもの:

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

私はあなたが私が何を意味するか理解してほしい...誰もがこれで私を助けることができますか?事前に多くの感謝!

、間違ったフォーマットのため申し訳ありませんが、私は新たなんだ...

答えて

1

私はあなたの「LIKE」の部分は正しいですが、SUBSTRを固定することが必要だと思います:

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

パーフェクト、それは働きます!どうもありがとうございました! – Elle

関連する問題