繁体   English   中英

如何提取 SQL 服务器中字符串的特定部分?

[英]How to extract the specific part of string in SQL server?

我在特定列的表中有一个字符串ST0023_Lamb_Weston_2017_US 在选择名称时,我只需要获得Lamb_Weston_2017_US 我可以用

SELECT SUBSTRING('ST0023_Lamb_Weston_2017_US', 8, 20)

但是列中会有不同的名称。 例如,

ST0023_Lamb_Weston_2017_US
ST0053_PL_Sandbox_Dorgan_US
ST0071_EDA_Austria
ST0071_EDA_Austria
ST10338_Nestle_Soluble_Instant_Cacao_ES

所以上面提到的是可用的不同名称。 我需要删除“ST”部分和数字部分,直到第一个连字符并单独返回名称。 请帮我解决一下这个。

在 substring function 内部使用 charindex 选择下划线的起始 position。 加一加 charindex 以排除下划线 position 和结束 position 将被考虑直到数据的长度。

create table data
(
value varchar(100)
)

insert into  data
select 'ST0023_Lamb_Weston_2017_US' union 
select 'ST0053_PL_Sandbox_Dorgan_US' union
select  'ST0071_EDA_Austria'  union
select  'ST0071_EDA_Austria' union
select 'ST10338_Nestle_Soluble_Instant_Cacao_ES' 
go
select value, SUBSTRING(value, CHARINDEX('_',value)+1 , LEN(value)) 'Newvalue' from data 

暂无
暂无

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

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