求sql2000的一个更新语句

来源:百度知道 编辑:UC知道 时间:2024/06/25 06:37:56
怎么让一个字段的值等于另一个字段的值中的一个数字?
例如 亮泽滋润200ml*12 我要让另一个字段的值等于*后面的12
跪求代码?
重点是后面也有的只有一位或有三位的!就这三种情况,数字在0~199之间

我晕,这种题目
直接用like呀

SELECT *
FROM TABLE
WHERE 字符串字段 LIKE '%’+ convert(数字,varchar)

直接右匹配就可以了,管他数字还是字符串,不都一样的

如果ml*后面都是2位数
直接
SELECT RIGHT('200ml*12',2)

继续 你的*应该是固定都有的吧
SELECT RIGHT('200ml*12', LEN('200ml*12')-charindex('*','200ml*12')),
RIGHT('200ml*1', LEN('200ml*1')-charindex('*','200ml*1'))

如果都是在*号后面的话,可以用下列语句
len(b)-charindex(*,b) --*后的位数

假设表名是a, b字段中存储亮泽滋润200ml*12,现在要更新c字段

如果c字段是字符型
update a set c = left(rtrim(b),len(b)-charindex(*,b))

如果c字段是数值型,会多一个转换过程
update a set c = convert(int,left(rtrim(b),len(b)-charindex(*,b)))

update 表 set 新字段=right(旧字段,2)

不过这是固定位数的,如果数字位数不固定,那还需要你去加条件判断。

select right('200ml*12',len('200ml*12')-charindex('*','200ml*12'))

update T2 set a2= right(a1,len(a1)-charindex('*',a1))