2011-09-02 5 views
2

'422000', '357860'과 같은 값을 가진 열 (range varchar(11))이 있습니다.문자열의 첫 번째 문자의 위치 찾기

는 I는 각각 '522000''557860',하게되도록 제

내지 제 문자 위치 (즉 4 및 3)를 변경할 수있는 질의를해야한다.

select replace (SUBSTRING(range,1,1), 1,5)) 

을하지만이 올바른 쿼리되지 않습니다 :

나는 시도했다.

귀하의 기여에 감사드립니다. 감사합니다

답변

3

이 경우 STUFF function을 사용하십시오.

DECLARE 
    @range varchar(11); 
SET @range = '422000'; 

SELECT @range, STUFF(@range, 1, 1, '5'); 
+0

고마워,이 나를 위해 작동합니다. – Matthew

1
SELECT [Range], 
     '5' + SUBSTRING([RANGE],2,25) [ModifiedRange] 
FROM (SELECT '422000' [Range] 
     UNION 
     SELECT '357860') A 
+0

첫 번째 숫자가 모두 '5'로 바뀌 었습니다. 첫 번째 숫자가 아닌 모든 숫자가 '5'로 바뀌 었습니다. – JNK

1

에 상관없이 범위의 길이 첫 글자를 대체하지 않습니다이 옵션은

Select range, '5' + SUBSTRING(range, 2, LEN(range)) as fixedrange 

연관된 업데이트 문 (즉, 테이블의 데이터가 변경됩니다) 다음과 같습니다

Update tbl_name SET range = '5' + SUBSTRING(range, 2, LEN(range)) 
+0

도움을 주셔서 감사합니다 – Matthew

관련 문제