2015-09-26 69 views

回答

3

你可以使用regexp_matches

CREATE table foo (
test VARCHAR); 

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

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

例在SQLFiddle

+0

regexp_matches(test,'\ d +')雖然返回一個數組,但是OP要求的是實際的數字。 –

1

在PostgreSQL這是可以做到的:

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

第一個函數(regexp_replace)從字符串的開始處刪除每個非數字,第二個(regexp_matches)從第一個函數的輸出中提取一個或多個出現的任何數字。

+0

它的工作原理,但數據ID返回括號括起來。我想要整數。我想檢查號碼是否是奇數,甚至是使用模式功能。 – user3260061

相關問題