我想从列中提取输入错误的ID。我知道ID总是以 E0 开头,后面跟着完全 四位。
到目前为止,这是我的方法:
declare @t table(myvalue varchar(100))
insert @t values('_badE04746_bad')
select * from @t
select stuff(myvalue, 1,patindex('%[^0-9]E0[0-9]%', myvalue + '0'), '')
from @t
我能够在E0之前移除部件但不能移除。我没有尝试集成子字符串函数来指定一定的长度。
希望你能把我放在正确的轨道上。
提前感谢您的帮助。
答案 0 :(得分:1)
由于您的ID总是长6个字符('E0'+ 4位),您可以使用其他子字符串:
declare @t table(myvalue varchar(100))
insert @t values('_badE04746_bad')
select * from @t
select SUBSTRING(stuff(myvalue, 1,patindex('%[^0-9]E0[0-9]%', myvalue + '0'), ''),1,6)
from @t