如何在Oracle SQL中使用REGEX检索十进制后的特定字符?

时间:2019-05-20 14:41:36

标签: sql oracle11g

我在Oracle 11g的View中使用RegEx,我需要显示某些在第8位带有'S'的代码。

使用https://regexr.com/2v41h

我能够显示这些结果 REGEXP_SUBSTR(code, '\S{8}') Y38.9X2S Y38.9X2D Y38.9X2A Y38.9X1S

我的问题是,我只需要返回最后一个位置带有“ S”的值,该位​​置是计算小数点的第8个位置。我应该使用什么表情?

示例: Y38.9X2S Y38.9X1S

我尝试过: REGEXP_SUBSTR(code, '\b[S]*[8]\b') AS CODE

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我在想:

select substr(code, -8)
from t
where code like '%_______S'

如果代码总是足够长,只需使用'%S'

或者,作为case表达式:

select (case when code like '%_______S' then substr(code, -8) end)

如果code包含其他字符,则将需要正则表达式,但可能不需要。