Oracle Database REGEX_SUBSTR查询以获取字符串中的最后一个数字

时间:2015-08-27 16:50:18

标签: regex oracle

我需要制作一个REGEX_SUBSTR查询来获取SKU项目编号的最后两个数字,我真的很新,因为我的老板把我扔进了一个我根本不太了解的项目。所以原谅我的无知。

示例SKU:

AD-001250-12

AD-115QW0120-24

DGS1-55DF-6

DGS1-55DF-50

SKU可以看起来像上面的示例,我需要使用正则表达式substring查询来获取每个字符串的最后两位数字。感谢您的帮助,因为我对语法不熟悉,对此没有任何经验! :)

1 个答案:

答案 0 :(得分:0)

如果您只想在最后的连字符后面找到所有内容,那么您实际上并不需要正则表达式。只需一个简单的gulp.src('./projects/*')instr

substr

with sku_table as ( select 'AD-001250-12' sku from dual union all select 'AD-115QW0120-24' from dual union all select 'DGS1-55DF-6' from dual union all select 'DGS1-55DF-50' from dual union all select 'ABC-11543-123' from dual ) select substr( sku, instr(sku,'-', -1) + 1, -- last hyphen length(sku) ) from sku_table 返回字符串中最后一个连字符的位置。添加一个以获取下一个字符。然后,您的instr(sku,'-', -1)调用将最后一个连字符后的所有内容都添加到字符串的末尾。如果你想获得" 23"那么你可以从中得到最后两个字符。而不是" 123"对于最后一个SKU,但这增加了更多的复杂性。

此处显示example sqlfiddle此查询正在运行