0

我必须在不使用 PostgreSQL 中的 SQL 给出位置的情况下获取字符串中的子字符串。

我已经尝试过这种方式,但只显示最后一个数字“2”

我这样工作的字符串是 P1.B1.12

SELECT SUBSTRING(REGISTRATIONNO from '.(.)*') AS REGISTRATIONNO 
FROM SUBSCRIBER;

预期的结果是12- 秒后的一切.

4

3 回答 3

1
select (regexp_split_to_array(registrationno, '\.'))[3]
from subscriber

请注意,这假定所需值始终位于第三个位置。如果不是这种情况,则表达式将返回错误值。

这是一个 SQLFiddle 示例:http ://sqlfiddle.com/#!12/d41d8/1924

于 2013-10-12T11:33:36.537 回答
1

你能试试这个吗?

SELECT SUBSTRING(REGISTRATIONNO from '\w*.\w*.(\d+)') AS REGISTRATIONNO 
FROM SUBSCRIBER;
于 2013-10-12T11:17:39.700 回答
0

也许你可以试试这个:

SELECT SUBSTRING_INDEX(REGISTRATIONNO, '.', -1) AS REGISTRATIONNO 
FROM SUBSCRIBER;
于 2013-10-12T11:37:19.090 回答