我正在從一個字符串中提取特定數據元素的小型項目。字符串示例:字符串變化時使用子字符串和Charindex的SQL Server
ABC:123-456-789-1234 description end 1/1/2015
我試圖提取的部分是123-456-789-1234
。現在我有以下SQL來選擇該數據元素:
SELECT substring(data, charindex('ABC',data)+4,16) FROM Table X
問題是該字符串變化很大。例如,下面是如何也可能提供的字符串:
ABC: 123-456-789-1234 description end 1/1/2015
ABC: 123-456-789-1234 da1234
ABC: 123-456-789-1234 random1234-12 1/1/2015
ABC: 123-456-789-1234,-ing end 1/1/2015
ABC 123-456-789-1234 description end
有捕捉我想要的確切數據元素的更好的辦法?我無法將一個值硬編碼到子字符串中。
編輯:應該澄清,該字符串不是在所有情況下相同(即文字說明或日期是可選的)
編輯:找到了答案。需要替換所有內容並提取相關信息。
SELECT substring(replace(replace(replace(data,' ',''),'-',''),':',''), charindex('ABC',replace(replace(replace(data,' ',''),'-',''),':',''))+3,13)
我不擅長白衣,但也許使用正則表達式 – McNets