Oracle SQL查询可以使用REGEXP_SUBSTR
方法返回特定列的行中包含的字符的第二,第三和第四位置,而不是像下面提供的示例那样使用SUBSTR
方法?
SELECT SUBSTR(city,2,3) AS "2nd, 3rd, 4th"
FROM student.zipcode;`
答案 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