2017-11-24 1 views
0

문장에 나타나는 첫 번째 숫자 뒤에 모든 것을 제거하는 코드를 작성하려고합니다.MS SQL이 숫자 앞에 모든 것을 제거합니다.

그래서 필드 E1W

경우 나는 EP4 경우, 같은 단지 E를 반환 단지 EP를 반환합니다. 나는 다양한 하위 문자열을 시도했지만 charindex와 patindexs는 올바르게 처리 할 수 ​​없습니다.

+0

예, 제 실수입니다. 사과드립니다. 업데이트 된 질문 – XDSA5286

답변

0

당신은 PATINDEX을 사용할 수

SELECT *, 
     LEFT(s,IIF(PATINDEX('%[0-9]%',s)>0,PATINDEX('%[0-9]%',s)-1,0)) 
FROM (SELECT 'E1W' AS s 
     UNION SELECT 'EP4' 
     UNION SELECT 'ABC') z; 

Rextester Demo

2

PATINDEX 도움 : 현장에는 자리가없는 경우

SELECT Left(field, PatIndex('%[0-9]%', field + '1') - 1) 

field + '1' 오류를 피할 수 있습니다.

관련 문제