pgSQL:选择字符串

时间:2015-09-26 09:39:01

标签: postgresql

字符串包含数字和字母数据。只提取号码的方法是什么?例如: 对于字符串" abc-123a-66" select应返回" 123"

2 个答案:

答案 0 :(得分:3)

您可以使用regexp_matches

CREATE table foo (
test VARCHAR);

INSERT INTO foo VALUES('abc-123a-66');

SELECT (regexp_matches(test, '\d+'))[1] FROM foo;

SQLFiddle

的示例

答案 1 :(得分:1)

在PostgreSQL中,这可以通过以下方式完成:

SELECT regexp_matches(regexp_replace(whatever_columnn,'\D*',''),'\d+') FROM whatever_table;

第一个函数(regexp_replace)删除字符串开头的每个非数字,第二个函数(regexp_matches)从第一个函数的输出中提取任何数字的一个或多个匹配项。 / p>