字符串中间的分隔符之间的T-SQL子字符串

时间:2016-05-26 20:47:52

标签: sql sql-server tsql

我需要从一个字符串中拉出一个子字符串,其中有多个相同的分隔符。必须在sql查询中完成(没有函数调用等)

数据示例:

DI:TIER1:VQ:SPI:H:SID005000009MTED0:FDCADIND:PS
PA:TIER4:VQ:SPI:H:SID005000009V3VO7:STPACPB3:CI

我需要的数据是在最后一个和第二个到最后一个冒号之间。

数据:

FDCADIND
STPACPB3

数据始终处于相同位置。最后三个字符的格式始终为:XX

我开始查询但似乎无法让它正确反转。

Select SubString('DI:TIER1:VQ:SPI:H:SID005000009MTED0:FDCADIND:PS', (CHARINDEX(':', 'DI:TIER1:VQ:SPI:H:SID005000009MTED0:FDCADIND:PS', 0) + 1), 
        (CharIndex(':', RIGHT('DI:TIER1:VQ:SPI:H:SID005000009MTED0:FDCADIND:PS', (LEN('DI:TIER1:VQ:SPI:H:SID005000009MTED0:FDCADIND:PS') - (CharIndex(':', 'DI:TIER1:VQ:SPI:H:SID005000009MTED0:FDCADIND:PS', 0)))), 0) - 1)) As NewString

任何帮助表示赞赏,

克里斯

1 个答案:

答案 0 :(得分:1)

如果数据(最后两个字段)具有固定长度:

/usr/local/bin