So grab a copy of NGrams8K. Then you can do this:
-- sample data
DECLARE @string VARCHAR(8000) =
'C Aleksander Barkov C Nico Hischier UTIL Tyson Jost W Taylor Hall W Evgenii Dadonov W Kyle Palmieri D Kris Letang D Ryan Suter G Casey DeSmith';
-- my solution works except for cases where the upper-case word is more than one char. You'll need to iron that out
SET @string = REPLACE(@string, 'UTIL', 'U');
-- solution
SELECT SUBSTRING(@string, d.pos+2, d.nextPos-d.pos-3)
FROM
(
SELECT
pos = ng.position,
nextPos = LEAD(ng.position,1,8000) OVER (ORDER BY ng.position)
FROM samd.ngrams8K(@string, 2) AS ng
WHERE ng.token COLLATE Latin1_General_BIN LIKE '[A-Z] '
) AS d;
Returns:
name
------------------
Aleksander Barkov
Nico Hischier
Tyson Jost
Taylor Hall
Evgenii Dadonov
Kyle Palmieri
Kris Letang
Ryan Suter
Casey DeSmith
Note that, for cases where you have all-caps words with > 1 character you will have to update your logic.
Update (Based on question in the comments):
For a string formatted like this (note I dropped the final delimiter):
|Eri|Staal|Nico Hischier|Mitchell Marner|Taylor Hall|Kyle Palmieri|Jason Zucker|Ryan Suter|Will Butcher|Keith Kinkaid
You could refactor my query to look like this:
DECLARE
@string VARCHAR(8000) = '|Eri|Staal|Nico Hischier|Mitchell Marner|Taylor Hall|Kyle Palmieri|Jason Zucker|Ryan Suter|Will Butcher|Keith Kinkaid',
@delimiter CHAR(1) = '|';
SELECT
sortKey = ng.position,
[name] = SUBSTRING
(
@string,
ng.position+1,
LEAD(ng.position,1,8000) OVER (ORDER BY ng.position)-ng.position-1
--ISNULL(NULLIF(CHARINDEX(@delimiter,@string,ng.position+1),0),8000)-ng.position-1
)
FROM samd.NGrams8K(@string, 1) AS ng
WHERE token = @delimiter;
Note that the logic above uses LEAD which requires SQL Server 2012+ if you are on 2008 your would uncomment the line below it and remove the line the uses LEAD. Note, too, that this solution is a scaled down version of DelimitedSplit8K (the 2008 solution) and DelimitedSplit8k_LEAD (the version that leverages LEAD).
All this said - If you have control over the format why not store the records in 3NF?
C John Smith