如何在 substr (oracle sql) 中应用转义字符 (%)?

how to apply escape character (%) in substr (oracle sql)?

我试过在百分号前提取信息,但不知道怎么做。 我的 table 看起来像这样:

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

我希望你明白我的意思...谁能帮我解决这个问题?非常感谢!!

抱歉格式错误,我是新手..

我认为你的 "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