我會盡量弄清楚這個...... 假設我有一個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