Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Oracle SQL中使用正则表达式检索十进制后的特定字符?_Sql_Oracle11g - Fatal编程技术网

如何在Oracle SQL中使用正则表达式检索十进制后的特定字符?

如何在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')作为代码 提前感

我在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')作为代码

提前感谢您的帮助。

我想:

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}
提供给您的结果感到满意(除了traling
S
)应该可以正常工作。