2014-09-24 9 views
-1

이 varchar 필드가 있습니다.SQL은 varchar (하위 문자열)에서 숫자 값만 가져옵니다.

Substrg 
-------- 
38-40week 
8month 
7 
40 
38-40week 
내가 예를 들어 숫자 만 얻을 싶습니다

:

38-40 
8 
7 
40 
38-40 

내가이 함께 시도했지만 작동하지 않습니다 ... :

select SUBSTRING(Substrg, PATINDEX('%[0-9]%', Substrg), LEN(Substrg)) 

내가 어떻게 할 수 있습니까? 감사합니다

+5

'PATINDEX()'은 (는) SQL 서버 기능이지만 질문은 MySQL 태그입니다. 어떤 데이터베이스를 사용하고 계십니까? 또한, 언제'-'가 숫자 문자가 되었습니까? –

+0

SQL Server 인 경우 'select dbo.fnRemovePatternFromString (fld,'% [을 사용하여 http://stackoverflow.com/questions/9636045/t-sql-strip-all-non-alpha-and-non-numeric-characters를 참조하십시오.^-0-9] % ')' –

+0

mysql을 정규 표현식을 지원하도록 확장 할 수 있습니다. 자세한 내용은 [this] (https://github.com/hholzgra/mysql-udf-regexp)를보십시오. – zaratustra

답변

3
select replace ('38-40week', SUBSTRING('38-40week', PATINDEX('%[a-z]%', '38-40week'), 
LEN('38-40week')),'')