【问题标题】:TSQL - Extract ID that starts with specific char and has a certain length from stringTSQL - 以特定字符开头并从字符串中提取一定长度的 ID
【发布时间】:2013-10-25 14:28:09
【问题描述】:

我想从列中提取输入错误的 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 之前的部分,但不能删除后面的部分。我试图整合 substring 函数来指定一定的长度失败了。

希望你能让我在这里走上正轨。

提前感谢您的帮助。

【问题讨论】:

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


    【解决方案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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 2015-04-28
      • 2023-03-16
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多