求助各位老师,如何用SQL语句实现某列值的补位和减位

求助各位老师,如何用SQL语句实现某列值的补位和减位

表名A
列名F_BH (数据类型varchar 大小 30位)

F_BH的值有数千行 如:9922010010001 (编号规则4位2位3位4位 中间无空格)

1、如何用SQL语句实现第4位后加个0变为 99220010010001
2、然后再如何用SQL语句实现第10位后去掉个0 变为9922001001001
即原来编码规则是4234现想改为4333 请老师帮助 非常感谢!

CREATE TABLE #temp
(
F_BH VARCHAR(30)
);

INSERT INTO #temp VALUES('9922010010001');

SELECT
F_BH,
SUBSTRING(F_BH, 1, 4)
+ '0'
+ SUBSTRING(F_BH, 5, 5)
+ SUBSTRING(F_BH, 11, 3)
FROM
#temp

F_BH
------------------------------ -------------------------
9922010010001 9922001001001

(1 行受影响)

如果是要更新的话,就是
UPDATE
#temp
SET
F_BH =
SUBSTRING(F_BH, 1, 4)
+ '0'
+ SUBSTRING(F_BH, 5, 5)
+ SUBSTRING(F_BH, 11, 3);

注意,更新语句不要执行多次,否则编码规则就要乱了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-28
update A set F_BH=left(F_BH,4)&"0"&mid(F_BH,5,4)&right(F_BH,3)
第2个回答  2011-05-31
1、update 表 set F_BH=stuff(F_BH,5,1,'00')
2、update 表 set F_BH=stuff(F_BH,11,1,'')
相似回答