2013-11-01 2 views
1

SQL Server에서 T-SQL을 사용하여 열의 첫 번째 숫자 앞에 텍스트를 격리해야합니다.문자열의 첫 번째 문자를 숫자로 반환하십시오.

예.

StreetName 11A-D 

나는 결과를 받고 싶습니다 :

StreetName 

나의 도전은 첫 번째 숫자 인 문자 수를 찾아하는 것입니다.

제안 사항?

+1

MS SQL은 SQL로 정규 표현식을 결합 할 수 있습니다 PATINDEX라는 기능이 있습니다. –

답변

3

시도하십시오 :

declare @var nvarchar(100)='StreetName 11A-D'; 

Select SUBSTRING(@var, 1, PatIndex('%[0-9]%', @var)-1) 
3
select left(street, patindex('%_[0-9]%', street + '1')) 
from (
select 'StreetName 11A-D' street 
union all 
select 'StreetName' street 
) x 

결과 :

StreetName 
StreetName 
+0

내 '이상한'구문의 이유는 다른 솔루션과 같은 오류를 방지하는 것입니다. 또한 "StreetName"과 같은 텍스트는 빈 텍스트가 나오지 않아야합니다. –

3
SELECT RTRIM(SUBSTRING('StreetName 11A-D', 1, PATINDEX('%[0-9]%','StreetName 11A-D')-1)) 
관련 문제