2015-09-16 56 views
-1

我在包含這樣的數據的Oracle表具有此列ACTIVITY_SUB_ID現場獲得具體的數據:從包含一個以上的數據

(95!25145!01/01/2015) 

現在,我需要的是提取比方說日期僅限於95或僅限25145

我該怎麼做?

+0

我不Oracle數據庫那麼多的工作,但也許你可以使用正則表達式(REGEXP_SUBSTR在Oracle )提取數字?你使用哪個oracle版本? – leiseliesel

+0

您可以使用regexp_substr(ACTIVITY_SUB_ID,'[^!] +',1,1) http://docs.oracle.com/cd/B12037_01/server.101/b10759/functions116.htm –

+1

可能重複的[Oracle從字符串中提取可變數字](http://stackoverflow.com/questions/6514189/oracle-extract-variable-number-from-string) – leiseliesel

回答

1

你可以試試這個 -

select ltrim(regexp_substr('(95!25145!01/01/2015)','[^!]+', 1, 1),'(') from dual; 
0

斯普利特!

SELECT REGEXP_SUBSTR(LTRIM(RTRIM(ACTIVITY_SUB_ID, ')'), '('), '[^!]+', 1, LEVEL) AS parts FROM test 
CONNECT BY REGEXP_SUBSTR(LTRIM(RTRIM(ACTIVITY_SUB_ID, ')'), '('), '[^!]+', 1, LEVEL) IS NOT NULL; 

SQL Fiddle

相關問題