请帮忙,我有一列(range varchar(11)
),其值为'422000'
,'357860'
。查找字符串的第一个字符的位置
我需要一个查询可以在第一个字符位置(即图4和3)更改为5
以致变得分别'522000'
和'557860'
。
我想:
select replace (SUBSTRING(range,1,1), 1,5))
但这不是正确的查询。
我将不胜感激您的贡献。由于
请帮忙,我有一列(range varchar(11)
),其值为'422000'
,'357860'
。查找字符串的第一个字符的位置
我需要一个查询可以在第一个字符位置(即图4和3)更改为5
以致变得分别'522000'
和'557860'
。
我想:
select replace (SUBSTRING(range,1,1), 1,5))
但这不是正确的查询。
我将不胜感激您的贡献。由于
使用STUFF function代替:
DECLARE
@range varchar(11);
SET @range = '422000';
SELECT @range, STUFF(@range, 1, 1, '5');
SELECT [Range],
'5' + SUBSTRING([RANGE],2,25) [ModifiedRange]
FROM (SELECT '422000' [Range]
UNION
SELECT '357860') A
在我的回答中意识到了一个缺陷,它用'5'代替了第一个数字的所有出现,而不仅仅是第一个。 – JNK
此选项将替换第一个字母不管的长度范围
Select range, '5' + SUBSTRING(range, 2, LEN(range)) as fixedrange
相关的更新语句(这将改变您的表中的数据)将是:
Update tbl_name SET range = '5' + SUBSTRING(range, 2, LEN(range))
感谢您的协助 – Matthew
谢谢,这对我有用。 – Matthew