与sql中的完整名分开的数字

use*_*323 0 sql t-sql sql-server

我有一个带有全名列的表,但是列中的数据也附有数字,我需要在两个不同的列中分隔这两个.这是一个例子.

create table #Test (ID int, name varchar(50))
insert into #Test values
(1, 'Alice,king (00123)'),
(2, 'John,Maxweell (00226)'),
(3, 'Marry,botam (1226)')
Run Code Online (Sandbox Code Playgroud)

从上面的表我想fullname在一列和number新列.任何帮助将不胜感激.

Vam*_*ala 5

如果列中的数字始终处于()并且每个(和只有一个出现,则此解决方案将起作用).

select 
 substring(name,1,charindex('(',name)-1) as name
,substring(name,charindex('(',name)+1,charindex(')',name)-charindex('(',name)-1)  as num
from tablename
where charindex('(',name) > 0 and charindex(')',name) > 0
Run Code Online (Sandbox Code Playgroud)