Есть несколько способов сделать это.При просмотре данных в качестве примера проще всего было бы использовать replace()
в операторе обновления.
Синтаксис: REPLACE ( string_expression , string_pattern , string_replacement )
Пример:
UPDATE table_name
SET column2 = replace([column2], [column1], '')
Чтоэто обновляет column2 значением из column2, где значение column1 заменяется на 'Ничего.В вашем примере это оставляет нежелательное пространство впереди.Вы можете обрезать это или попробовать следующее:
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.