How to extract strings between two special characters in TSQL

How to write a TSQL script to get "Monday_Miami" from "Email_Monday_Miami_June"

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

Thanks a million

+5
source share
2 answers
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
+18
source
declare @s varchar(max) = 'Email_Monday_Miami_June'

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

All Articles