如何在Oracle SQL中使用正则表达式检索十进制后的特定字符?
我在Oracle11g的视图中使用正则表达式,我需要显示某些代码,这些代码在第8位有一个“S” 使用 我能够用计算机显示这些结果如何在Oracle SQL中使用正则表达式检索十进制后的特定字符?,sql,oracle11g,Sql,Oracle11g,我在Oracle11g的视图中使用正则表达式,我需要显示某些代码,这些代码在第8位有一个“S” 使用 我能够用计算机显示这些结果 REGEXP\u SUBSTR(代码,'\S{8}') Y38.9X2S Y38.9X2D Y38.9X2A Y38.9X1S 我的问题是,我只需要返回在最后一个位置有“S”的值,这是计算小数点的第8个位置。我应该用什么表达 例如: Y38.9X2S Y38.9X1S 我试过: REGEXP\u SUBSTR(代码,'\b[S]*[8]\b')作为代码 提前感
REGEXP\u SUBSTR(代码,'\S{8}')
Y38.9X2S
Y38.9X2D
Y38.9X2A
Y38.9X1S
我的问题是,我只需要返回在最后一个位置有“S”的值,这是计算小数点的第8个位置。我应该用什么表达
例如:
Y38.9X2S
Y38.9X1S
我试过:
REGEXP\u SUBSTR(代码,'\b[S]*[8]\b')作为代码
提前感谢您的帮助。我想:
select substr(code, -8)
from t
where code like '%_______S'
如果代码总是足够长,只需使用'%S'
或者,作为一个案例
表达式:
select (case when code like '%_______S' then substr(code, -8) end)
如果code
有其他字符,但它们可能不是必需的,则需要正则表达式。我想:
select substr(code, -8)
from t
where code like '%_______S'
如果代码总是足够长,只需使用'%S'
或者,作为一个案例
表达式:
select (case when code like '%_______S' then substr(code, -8) end)
如果code
有其他字符,您将需要正则表达式,但它们可能不是必需的。只需使用'\S{7}S'
非常感谢。这非常有效。我用括号和带小数的多个表达式过度思考。我真的很感激!别担心。如果您对\S{8}
提供给您的结果感到满意(除了跟踪S
)应该可以正常工作。只需使用'\S{7}S'
非常感谢。这非常有效。我用括号和带小数的多个表达式过度思考。我真的很感激!别担心。如果您对\S{8}
提供给您的结果感到满意(除了tralingS
)应该可以正常工作。