1

我想从列中提取输入错误的 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 之前的部分,但不能删除后面的部分。我未能尝试集成子字符串函数以指定特定长度。

希望你能让我在这里走上正确的道路。

提前感谢您的帮助。

4

1 回答 1

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 
于 2013-10-17T08:02:19.593 回答