繁体   English   中英

从 SQL Server 中的列中提取值

[英]Extract values from column in SQL Server

如何从 SQL Server 中的列中提取以下值:

"ICMP (type: 8 / subtype: 0)" -----> "8" and "0"
"ICMP (type: 0 / subtype: 19)" -----> "0" and "19"
"ICMP (type: 11 / subtype: 5)" -----> "11" and "5"
"ICMP (type: 12 / subtype: 30)" -----> "12" and "30"

我尝试了不同的函数 - charindex()、left()、right() 但我失败了。

SQL Server 不擅长字符串操作。 cross apply有点帮助:

select left(v.str1, charindex(' ', v.str1)) as type, replace(v.str2, ')', '') as subtype
from (values ('ICMP (type: 8 / subtype: 0)'), ('ICMP (type: 12 / subtype: 30)')) t(field) cross apply
     (values ( stuff(field, 1, charindex('type:', field) + 5, ''),
               stuff(field, 1, charindex('subtype:', field) + 8, '')
             )
     ) v(str1, str2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM