Вопрос не совсем ясен, какова ваша конечная игра, но если я вас правильно понимаю, то что-то вроде этого должно сработать (заметьте, вам сначала нужно создать функцию разбора):
CREATE FUNCTION [dbo].[fnParseString]
(
@Section SMALLINT,
@Delimiter CHAR,
@Text VARCHAR(MAX)
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @startindex NUMERIC(18,0),
@length NUMERIC(18,0),
@FieldPosition INT
SET @FieldPosition = ABS(@Section) - 1
SET @startindex = 0
WHILE @FieldPosition != 0
BEGIN
SET @FieldPosition = @FieldPosition - 1
SET @startindex = CHARINDEX(@Delimiter, @Text, @startindex + 1)
END
SET @Text = SUBSTRING(@Text, @startindex + 1, LEN(@Text) - @startindex)
SET @Text = SUBSTRING(@Text, 0, CHARINDEX(@Delimiter, @Text))
RETURN @Text
END
GO
DECLARE
@tableHTML NVARCHAR(MAX),
@email nvarchar(100),
@text nvarchar(100),
@number_suffix nvarchar(1)
SET @text = 'State of orders for Morfeus|State of orders for Fenix|State of orders for Perseus|'
SET @number_suffix = 1
WHILE (@number_suffix < 4)
BEGIN
PRINT dbo.fnParseString(@number_suffix, '|', @text)
SET @number_suffix = (@number_suffix + 1)
END