2011-09-02 176 views
2

請幫忙,我有一列(range varchar(11)),其值爲'422000''357860'查找字符串的第一個字符的位置

我需要一個查詢可以在第一個字符位置(即圖4和3)更改爲5

以致變得分別'522000''557860'

我想:

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'代替了第一個數字的所有出現,而不僅僅是第一個。 – 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

相關問題