字段BASE_UNIT为VARCHAR(10)类型,我想从字段BASE_UNIT中减去一部分字符也就是参数@UNIT,比如原来是'块包箱捆',参数@UNIT='捆',执行语句之后,字段BASE_UNIT变为'块包箱',我用的下面的语句:
update GOODS_GOODS set BASE_UNIT=BASE_UNIT-@UNIT where ID=1000;
但是失败了,不知道该如何实现,我查了下函数,也没找到合适的函数。请帮忙,先谢谢了。
我往这个字段追加字符的时候没报错:update GOODS_GOODS set BASE_UNIT=BASE_UNIT+@UNIT where ID=1000;
update GOODS_GOODS set BASE_UNIT=BASE_UNIT-@UNIT where ID=1000;
但是失败了,不知道该如何实现,我查了下函数,也没找到合适的函数。请帮忙,先谢谢了。
我往这个字段追加字符的时候没报错:update GOODS_GOODS set BASE_UNIT=BASE_UNIT+@UNIT where ID=1000;
试试下面的代码:
declare @a char(20)
declare @b char(4)
declare @c char(20)
set @a = '快-快-快-快-快-'
set @b = '快-'
set @c = replace(@a,@b,'')
select @c,len(@c)
declare @b char(4)
declare @c char(20)
set @a = '快-快-快-快-快-aa'
set @b = '快-'set @a=reverse(@a)
set @b=reverse(@b)
set @c = reverse(substring(@a,len(@b),len(@a)-len(@b)))
select @c,len(@c)
-------------------- -----------
-快-快-快-快-aa 11(1 行受影响)
declare @b varchar(4)
set @a = '快-快-快-快-快-aa'
set @b = '快-'
select STUFF(@a,charindex(@b,@a),len(@b),'')
/*
快-快-快-快-aa
*/
STUFF
删除指定长度的字符并在指定的起始点插入另一组字符。示例
下例通过在第一个字符串 (abcdef) 中删除从第二个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。 SELECT STUFF('abcdef', 2, 3, 'ijklmn')
GO下面是结果集:---------
aijklmnef (1 row(s) affected)