2017-09-04 43 views
1

我有一个简单的查询2个特殊字符之间的值:SQL选择多于一个特殊字符存在

LEFT(ReportMasterID, CHARINDEX(':', ReportMasterID) - 1) AS cons 

我需要解决上述脚本的变化将会重新拉开大只的价值2个字符串中有多组特殊字符的特殊字符。

这里是字符串格式我需要从拉动值:

BORMG01D:BORMG:111111:1251624:40200 

显然,上述选择,因为有一组以上的特殊字符的生成错误 - 我只是需要这个值:

BORMG 

任何人都可以帮忙吗?

回答

2

下面是一个简单XML方法

Declare @YourTable table (ID int,ReportMasterID varchar(max)) 
Insert Into @YourTable values 
(1,'BORMG01D:BORMG:111111:1251624:40200') 

Select ID 
     ,Pos2 = convert(xml,'<x>'+replace(ReportMasterID,':','</x><x>')+'</x>').value('/x[2]','varchar(100)') 
From @YourTable 

返回

ID Pos2 
1 BORMG