日期:2014-05-18  浏览次数:20643 次

编码转换问题,再次请教
我有几百万条数据
以前编码规则是
省   市、县、乡、村、组、农户
2       2     2       3       3       3         3
如:湖南省汝城县岭秀乡宝南村狐狸组张三的编号为:
431106031025002031

要转换为
省   市、县、乡、村、组、农户
2       2     2       2       2       2         3
即:转换为:431106312502031

也就是说要去掉第7位、第10位、第13位数字

------解决方案--------------------
--查詢
Select
Stuff(Stuff(Stuff(ColumnName, 7, 1, ' '), 9 ,1 , ' '), 11, 1, ' ') From TableName
--更新
Update TableName Set ColumnName = Stuff(Stuff(Stuff(ColumnName, 7, 1, ' '), 9 ,1 , ' '), 11, 1, ' ')
------解决方案--------------------
楼上顺序错了
declare @str varchar(50)
select @str = '431106031025002031 '
,@str = stuff(@str,13,1, ' ')
,@str = stuff(@str,10,1, ' ')
,@str = stuff(@str,7,1, ' ')

select @str

------解决方案--------------------
declare @str varchar(8000)

set @str= '431106031025002031 '


select substring(@str,1,6)+substring(@str,8,2)+substring(@str,11,2)+substring(@str,14,5)