有几种方法可以做到这一点。
查看示例数据时,最简单的方法是在更新语句中使用 replace()。
语法:
REPLACE ( string_expression , string_pattern , string_replacement )
例子:
UPDATE table_name
SET column2 = replace([column2], [column1], '')
它的作用是用 column2 中的值更新 column2,其中 column1 中的值被替换为 '' nothing。在您的示例中,这确实给您留下了前面不需要的空间。您可以修剪或尝试如下:
UPDATE Test
SET [SubAccountName] = replace([SubAccountName], [SubAccountCode] + ' ', '')
如果 SubAccountCode 可能与 SubAccountName 中的代码不同,并且您只想删除前 8 个字符(如果您确定它始终是前 8 个),您可以使用:
UPDATE YourTable SET SubAccountName = RIGHT(SubAccountName, LEN(SubAccountName) - 7)
示例脚本:
create table test (
SubAccountName varchar(100),
SubAccountCode varchar(100)
)
insert into test (SubAccountCode, SubAccountName) VALUES
(1234567, '1234567 AUBC' ),
(1234467, '1234467 AUBC' ),
(1235567, '1235567 AUBC' )
select * from test -- Check that the data is like your example.
UPDATE Test SET SubAccountName = RIGHT(SubAccountName, LEN(SubAccountName) - 8)
select * from test -- Check that the result is like your wanted result.
drop table test -- Cleanup the test table.