2012-01-10 2 views
2

필드에 처음 4 개의 문자를 잘라내는 함수를 작성하려고합니다. 예를 들어 필드의 값이 ABC_123_EFG이면 123_EFG을 반환합니다. 나는 LEFTLEN 함수의 조합을 사용하려했지만 어떤 성공도 이루지 못했습니다. 여기LEN 함수에 LEFT 함수 사용

은 ... 나는 그것이해야한다고 생각 무엇을

RIGHT(code, LEN(code) - 4) AS code_concat 

이다하지만 내가 뭘 잘못이 오류

Msg 536, Level 16, State 2, Line 2 
Invalid length parameter passed to the RIGHT function. 

실패? 이것을 달성하는 가장 좋은 방법입니까?

+0

모든 값은 항상 4 자 이상이어야합니까? – Greg

+0

고려중인 모든 행에서'code'는 적어도 4 자 이상입니까? – AakashM

+0

그냥 보니 null 일 수 있습니다 ... opps –

답변

6

사용 substring : 그것은 varchar(max)의 경우

substring(code, 5, 1000) 

또는 :

substring(code, 5, len(code)) 
+2

5가 아니라 4가되어야합니다. 4. 문자열 기능은 1부터 시작합니다. –

+0

@ liho1eye - 위대한 잡다! – Eric

3

이 시도 ..

select isnull(RIGHT(code, LEN(code) - 4),'') AS code_concat 
1

stuff는 수정할 때 매우 유용합니다 좋은 작은 기능입니다 문자열.

select stuff(code, 1, 4, '') 
관련 문제