批量提取更新别名
各位大侠:
小弟现遇到一问题,请帮助解决。
有一个表大概有50000条数据:
表一:name nameID
中国人(4444444)
传感器(广州)有限公司(4487778)
我想把后一个()里的数字取出来,然后批量更新到nameID中,请问如果实现? sql 行业数据
[解决办法]
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (name nvarchar(40))
insert into [TB]
select '中国人(4444444)' union all
select '传感器(广州)有限公司(4487778)'
select * from [TB]
SELECT name,REVERSE(SUBSTRING(REVERSE(name),2,PATINDEX('%(%',REVERSE(NAME))-2)) AS nameID
FROM dbo.TB
/*
namenameID
中国人(4444444)4444444
传感器(广州)有限公司(4487778)4487778*/
--更新
--UPDATE dbo.TB
--SET nameid = REVERSE(SUBSTRING(REVERSE(name),2,PATINDEX('%(%',REVERSE(NAME))-2))
SUBSTRING(name,PATINDEX('%[0-9]%',name),7)