sql - 在字符串中的第三次和第四次出现之间搜索
问题描述
我有一个包含一些文本的字符串:
例子:
XPTOP XPTOP 4WS00632 BLACK VERNIS
我只想提取
4WS00632
并忽略其他一切。
我确实尝试对空格进行索引,使用 charindex 搜索所有空格,然后使用子字符串从 x 开始,在 y 结束。
但是,没有运气。有时它会返回“4WS0063”或“P 4WS00632”。这个数据不连贯,只有“XPTOP XPTOP”有点连贯。例如“4WS00632”,它有 8 个数字,但它可能有 9 或 12。
所以,我真的需要抓住第三空间和第四空间之间的一切。
解决方案
另一种选择是使用一点 JSON
示例或dbFiddle
Select A.SomeCol
,NewVal = JSON_VALUE('["'+replace(SomeCol,' ','","')+'"]','$[2]')
From YourTable A
结果
SomeCol NewVal
XPTOP XPTOP 4WS00632 BLACK VERNIS 4WS00632
推荐阅读
- c - 使用 ARM Neon 内在函数实现 64 位变量的乘法时面临的问题
- rest-assured - 使用 RestArrured 触发时 API 返回 text/html 而不是 JSON
- python - 在python中循环两个文本文件
- midi - csound中的midipolyaftertouch是否损坏?
- django - 如何从重复查询中优化查询集
- c# - “没有足够的权限来完成操作”,尽管授予了所有必要的权限
- python - 将数据帧内的字符串转换为数组的有效方法
- python - 熊猫:弃用警告:元素比较失败
- c++ - 如何在鼠标钩子进程中发送鼠标输入时避免延迟?
- python-3.x - 在类中导入模块,但在类方法中使用模块时出现名称错误