如何在Oracle SQL中使用正则表达式检索数据库列行中的特定字符位置?

如何在Oracle SQL中使用正则表达式检索数据库列行中的特定字符位置?,sql,regex,oracle,Sql,Regex,Oracle,什么Oracle SQL查询可以使用REGEXP\u SUBSTR方法而不是下面提供的SUBSTR方法返回特定列行中包含的字符的第二、第三和第四个位置 SELECT SUBSTR(city,2,3) AS "2nd, 3rd, 4th" FROM student.zipcode;` 一种对我有效的方法(使用测试数据)是: 请注意,此设置用于查找从字符串第二个位置开始的三个非空白字符 您还可以使用: SELECT REGEXP_SUBSTR(city, '.{3}', 2) AS partial

什么Oracle SQL查询可以使用
REGEXP\u SUBSTR
方法而不是下面提供的
SUBSTR
方法返回特定列行中包含的字符的第二、第三和第四个位置

SELECT SUBSTR(city,2,3) AS "2nd, 3rd, 4th"
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\u INSTR
函数不是您想要的,因为它返回搜索字符串中搜索项的索引(位置号)。您可以在此处阅读相关内容:

ORA-00923:FROM关键字未找到预期的00923。00000-“在预期位置未找到FROM关键字”*原因:*操作:第1行第43列出现错误
更改别名或双引号,例如,从student.zipcode中选择REGEXP_SUBSTR(城市,{3}',2)作为“2to4”;我通过编辑SUBSTR条款重新澄清了问题;现在,
从student.zipcode中选择SUBSTR(城市,2,3,4)作为“第二、第三、第四”
SELECT SUBSTR(city,2,3) AS partial FROM student.zipcode;