如何使用Oracle SQL中的REGEX检索数据库列的行中的特定字符位置?

时间:2016-02-18 18:21:28

标签: sql regex oracle

Oracle SQL查询可以使用REGEXP_SUBSTR方法返回特定列的行中包含的字符的第二,第三和第四位置,而不是像下面提供的示例那样使用SUBSTR方法?

SELECT SUBSTR(city,2,3) AS "2nd, 3rd, 4th"
FROM student.zipcode;`

1 个答案:

答案 0 :(得分:2)

对我有用的一种方法(包含测试数据)是:

SELECT REGEXP_SUBSTR(city, '\S{3}', 2) AS partial FROM student.zipcode;

请注意,此设置为从字符串的第二个位置开始查找三个非空白字符。

你也可以使用:

SELECT REGEXP_SUBSTR(city, '.{3}', 2) AS partial FROM student.zipcode;

将改为匹配第2到第4位的任意三个字符。

但是,我不确定这有什么好处而不仅仅是:

SELECT SUBSTR(city,2,3) AS partial FROM student.zipcode;

REGEXP_INSTR函数不是您想要的,因为它返回搜索字符串中搜索项的索引(位置编号)。您可以在此处阅读:http://www.techonthenet.com/oracle/functions/regexp_instr.php