Для этого решения требуется SQL-Server 2016 (для OPENJSON
), но не требуется никакой функции:
DECLARE @tbl TABLE(ID INT IDENTITY, YourText VARCHAR(100));
INSERT INTO @tbl VALUES
('FISIOPATOLOGIA DELLA RIPRODUZIONE UMANA')
,('ODONTOIATRIA E STOMATOLOGIA')
,('CHIRURGIA MAXILLO FACCIALE');
DECLARE @maxLength INT = 6;
SELECT t1.ID
,t1.YourText
,STUFF((
SELECT ' ' + CASE WHEN LEN(A.[value])<=6 THEN A.[value] ELSE LEFT(A.[value],@maxLength) + '.' END
FROM OPENJSON('["' + REPLACE(t1.YourText,' ','","') + '"]') A
ORDER BY A.[key]
FOR XML PATH(''),TYPE
).value('text()[1]','nvarchar(max)'),1,1,'')
FROM @tbl t1
OPENJSON
возвращает порядковый номер в столбце [key]
при анализе массива.