我想用value accons_no中的值'accxxx'替换为'xxx'
这就是我现在使用的:
UPDATE dbo.dbo_account
SET Value = REPLACE(value,'ACC','0')
WHERE account_no LIKE ('ACC');
但它不断给出错误
字段列表中未知列"值"。
不明白为什么....有人看到我出错的地方吗?
您使用的值单词需要是表中的列,错误意味着不是。
您说替换,所以假设您的意思是要更新Account_no,则应该这样做。如果不是这样,您只需将您的单词值替换为要更新的任何列名。
您还说您要删除ACC,但是您的替换将ACC更改为0,所以我也将其删除在下面,因此它可以删除ACC。
UPDATE dbo.dbo_account
SET account_no = REPLACE(account_no,'ACC','')
WHERE account_no LIKE ('ACC');
根据SQL Tecnology,您可能需要用此类似行替换类似行才能使用通配符作为语句。
WHERE account_no LIKE ('ACC%');
尝试如下
UPDATE dbo.dbo_account
SET Value=REPLACE('ACCxxx',account_no)
WHERE account_no LIKE '%ACC%'
这不会解决您的问题,这是由于您使用错误的列
您编写的代码等同于:
UPDATE dbo.dbo_account
SET Value = '0'
WHERE account_no = 'ACC';
我怀疑您希望value
为account_no
UPDATE dbo.dbo_account
SET account_no = '0'
WHERE account_no = 'ACC';
这是编写它的最佳方法。如果要用0替换ACC的出现,请使用:
UPDATE dbo.dbo_account
SET account_no = REPLACE(account_no, 'ACC', '0')
WHERE account_no LIKE '%ACC%'; -- note the wildcards;
如果您想在开始时删除ACC并替换为0
,请使用stuff()
:
UPDATE dbo.dbo_account
SET account_no = STUFF(account_no, 1, 3, '0')
WHERE account_no LIKE 'ACC%'; -- note the wildcards;