[英]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.