SQL删除字段头三位

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:10:40
UPDATE test01 SET item_code=right(item_code,len(item_code)-3)
WHERE
item_code like '%jb1001%'

这个语句我认为没有错啊,但是删除却删除所有字符了

请高手赐教~~~~
。。。。left是删除后边的,right是删除前边的。。。。。

我使用的SQL 2000

UPDATE test01 SET item_code=right(ltrim(rtrim(item_code)),len(ltrim(rtrim(item_code)))-3)
WHERE
item_code like '%jb1001%'

增加了对item_code的ltrim和rtrim的处理。数据库表字段可能是被空格填充的。

你的删除操作是把字段凡是含有 jb1001的字段都筛出来,且把后面的三个字符给截去了。
不会你所有的字段都含有jb1001字符吧?

item_code全都加rtrim 看看

UPDATE test01 SET item_code=right(rtrim(item_code),len(rtrim(item_code))-3)

sql
语句没有问题,检查你的数据和表结构吧

在 MS SQL Server 2005 上草草地测试没发现问题呀 ... 测试的数据是 'jb1001' + '0' ~ '9' 的样子, 难道您的数据 (库) 另有蹊跷 ...

你可以查看一下len(item_code),以及right(item_code,len(item_code)-3)是什么内容,再做决定。
看是不是item_code被定义成了定长字符串,而你对right函数理解得不对。