SQL选择存在多个特殊字符的2个特殊字符之间的值

时间:2017-09-04 14:41:00

标签: sql sql-server tsql

我有一个简单的查询:

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

我需要弄清楚上面脚本的一个变体,它只会拉回2个特殊字符之间的值,其中字符串中有多个特殊字符集。

以下是我需要从中提取值的字符串格式:

BORMG01D:BORMG:111111:1251624:40200

显然上面的select会产生错误,因为有多组特殊字符 - 我只需要这个值:

BORMG

有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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