Если я правильно понимаю ваш вопрос, вы можете попытаться изменить свой UDF следующим образом:
Функция:
CREATE FUNCTION [dbo].[Sorting] (@text VARCHAR(5000)) RETURNS VARCHAR(5000)
BEGIN
;WITH TallyCTE (n) AS (
-- 10000 rows
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) a(n)
CROSS JOIN (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) b(n)
CROSS JOIN (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) c(n)
CROSS JOIN (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) d(n)
), SymbolsCTE (s) AS (
SELECT SUBSTRING(@text, n, 1)
FROM TallyCTE
WHERE n <= LEN(@text)
)
SELECT @text = (
SELECT CONCAT(s, '')
FROM SymbolsCTE
ORDER BY s
FOR XML PATH(''),TYPE
).value('.','varchar(5000)')
RETURN @text
END
Заявление:
SELECT dbo.Sorting('QWERTYUIOPASDF1234GHJKL5678ZXC90VBNM')
Вывод:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ