【发布时间】:2020-10-21 15:24:30
【问题描述】:
如何提取出现在 4 ';' 之后的字符串使用选择查询在表的列中?
例如 - 如果 U 在列中有以下值:
1234;0000;567;655;0541234567;777;777
我想获取第 5 位的值;在这个例子中是
0541234567
谢谢!
【问题讨论】:
标签: sql-server string select text-extraction
如何提取出现在 4 ';' 之后的字符串使用选择查询在表的列中?
例如 - 如果 U 在列中有以下值:
1234;0000;567;655;0541234567;777;777
我想获取第 5 位的值;在这个例子中是
0541234567
谢谢!
【问题讨论】:
标签: sql-server string select text-extraction
你可以使用一点 JSON
示例
Declare @YourTable table (SomeCol varchar(100))
Insert into @YourTable values ('1234;0000;567;655;0541234567;777;777')
Select A.SomeCol
,Val5 = JSON_VALUE(S,'$[4]')
from @YourTable A
Cross Apply ( values ( '["'+replace(SomeCol,';','","')+'"]' ) ) B(S)
退货
SomeCol Val5
1234;0000;567;655;0541234567;777;777 0541234567
编辑——如果只在一个值之后,则不需要交叉应用
Select A.SomeCol
,Val5 = JSON_VALUE('["'+replace(SomeCol,';','","')+'"]','$[4]')
from @YourTable A
【讨论】: