如何使用替换语句以1000行替换一部分字段值



我想用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';

我怀疑您希望valueaccount_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;

最新更新