TSQL - 提取以特定字符开头且具有字符串长度的ID

时间:2013-10-17 07:45:42

标签: sql-server tsql sql-server-2012 substring

我想从列中提取输入错误的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之前移除部件但不能移除。我没有尝试集成子字符串函数来指定一定的长度。

希望你能把我放在正确的轨道上。

提前感谢您的帮助。

1 个答案:

答案 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