首页 > 解决方案 > 在字符串中的第三次和第四次出现之间搜索

问题描述

我有一个包含一些文本的字符串:

例子:

XPTOP XPTOP 4WS00632 BLACK VERNIS

我只想提取

4WS00632

并忽略其他一切。

我确实尝试对空格进行索引,使用 charindex 搜索所有空格,然后使用子字符串从 x 开始,在 y 结束。

但是,没有运气。有时它会返回“4WS0063”或“P 4WS00632”。这个数据不连贯,只有“XPTOP XPTOP”有点连贯。例如“4WS00632”,它有 8 个数字,但它可能有 9 或 12。

所以,我真的需要抓住第三空间和第四空间之间的一切。

标签: sqlsql-servertsql

解决方案


另一种选择是使用一点 JSON

示例或dbFiddle

Select A.SomeCol
      ,NewVal = JSON_VALUE('["'+replace(SomeCol,' ','","')+'"]','$[2]')
 From YourTable  A

结果

SomeCol                                 NewVal
XPTOP XPTOP 4WS00632 BLACK VERNIS       4WS00632

推荐阅读