我会尽量弄清楚这个...... 假设我有一个2列的表格。 issue_number和issue_text。我需要从issue_text列中获取2个字符串。第一个字符串是不能够因为只有这么多种类的问题可登录很难用case语句编码(注意,我知道这是不是最好的方法)SQL操作字符串
case
when issue_text like '%error%' then 'error'
else 'not found'
end as error_type
的issue_text是字符串将被格式化主要是相同,它会有一个错误,更多信息,然后是一个事件编号,那就是字符串的结尾。
i.e. "Can't add address. Ref Number: 9999999"
我遇到的问题是数字并不总是与错误消息相同数量的字符。
我想知道是否有一种方法来访问从类似子句中引起匹配的子字符串。喜欢使用正则表达式(我知道在SQL中不支持很好)
case
when issue_text like '%[0-9 .]%' then (the substring match from like '%[0-9 .]%')
else 00000
end as issue_number
另一个case语句,我仅限于解决这个问题,并分析从SQL Server Management Studio或肯定的,我会使用这些字符串。网络或东西来利用。
['PATINDEX'](HTTPS ://msdn.microsoft.com/en-us/library/ms188395.aspx)返回一个模式的索引,它会给你你的起始位置。 –
但错误号码总是字符串中的最后一个标记?所以我们可以用REVERSE和SUBSTRING做些什么? – dlatikay
@dlatikay它始终是字符串中的最后一个,我会尝试在patindex之后使用,这也看起来像一个可行的选项。将返回结果 – sgriffin