关于序号长度不同的问题
SQLSERVER2005中,有一序号列,长度有4和5位,我想把它都改成4位或者5位长度,中长度为5的数字中的后四位,结果造成5位的序号全部为空了,请问下面的哪里错了?
update aqbm4300
set bm_serial=right(bm_serial,4)
where len(bm_serial)=5
该如何改进呢?
例如:序号为 0001,0002,0003,00004,00005。我想都改成4位的,即0004,0005。。。。。
------解决方案--------------------update aqbm4300
set bm_serial=right(rtrim(bm_serial),4)
where len(rtrim(bm_serial))=5
这样试一下
rtrim()消除右边的空格
------解决方案--------------------原因:
bm_serial是char或者nchar类型,后面有自动添加的空格
解决方法:
楼上的,应该可以
update aqbm4300
set bm_serial=right(rtrim(bm_serial),4)
where len(bm_serial)=5
------解决方案--------------------update 表 set 字段=
case when len(字段) <> 4 then right(字段,4)
else 字段 end