How to extract strings between two special charact

2019-01-15 19:47发布

问题:

How to write TSQL script to get "Monday_Miami" out of "Email_Monday_Miami_June"

Essentially, I want to extract everything between 1st and 3rd "_"

Thanks a million

回答1:

DECLARE @c varchar(100)
SET     @c = 'Email_Monday_Miami_June' 

SELECT SUBSTRING(
    @c, 
    CHARINDEX('_', @c) + 1, 
    LEN(@c) - CHARINDEX('_', @c) - CHARINDEX('_', REVERSE(@c))
)

returns

Monday_Miami


回答2:

declare @s varchar(max) = 'Email_Monday_Miami_June'

select parsename(replace(@s, '_', '.'), 3)+'_'+parsename(replace(@s, '_', '.'), 2)