اینم یک روش دیگر.
شاید به نظر یکمی پیچیده باشد ولی باید سرعت اجرای بالایی داشته باشد.
DECLARE @a NVARCHAR(4000)
SET @a=reverse('4124124123413256456567569670967453347455356375634 6356857'
+'4646456436346346346456464646464564646464564643643 64645645436'+
'4563464564564563466456456456434563534686845554868 34584563464');
WITH Navigation AS (
SELECT
cast('' as nvarchar(4000)) AS [value]
,0 AS [Level]
UNION ALL SELECT
n.[value]+','+substring(@a,3*[level]+1,3) AS [value]
, n.[level] + 1 AS [level]
FROM
Navigation n
WHERE
[level] < len(@a)/3.0
)
SELECT TOP 1 substring(reverse([value]),1,len([value])-1)
FROM Navigation
ORDER BY [Level] DESC
41,241,241,234,132,564,565,675,696,709,674,533,474 ,553,563,756,346,356,857,464,645,643,634,634,634,6 45,646,464,646,456,464,646,456,464,364,364,645,645 ,436,456,346,456,456,456,346,645,645,645,643,456,3 53,468,684,555,486,834,584,563,464