Что касается моего комментария, это один из способов сделать это (не моя лучшая работа: D)
CREATE FUNCTION dbo.Split
(
@string nvarchar(max)
)
RETURNS @result TABLE (Word nvarchar(max), A int, B int, C int, D int)
AS
BEGIN
DECLARE @sub nvarchar(max)
DECLARE @Word nvarchar(max)
DECLARE @A int
DECLARE @B int
DECLARE @C int
DECLARE @D int
IF @string IS NULL
BEGIN
INSERT INTO @result VALUES(NULL, NULL, NULL, NULL, NULL)
END
ELSE
BEGIN
WHILE LEN(@string) > 0
BEGIN
IF @string LIKE '% [A-Z]%'
BEGIN
SET @sub = SUBSTRING(@string, 0, PATINDEX('% [A-Z]%', @string))
END
ELSE
BEGIN
SET @sub = @string
END
SET @string = LTRIM(RTRIM(RIGHT(@string, LEN(@string) - LEN(@sub))))
SET @Word = LEFT(@sub, CHARINDEX(' ', @sub) - 1)
SET @sub = SUBSTRING(@sub, CHARINDEX(' ', @sub) + 1, LEN(@sub))
SET @A = LEFT(@sub, CHARINDEX(' ', @sub))
SET @sub = SUBSTRING(@sub, CHARINDEX(' ', @sub) + 1, LEN(@sub))
SET @B = LEFT(@sub, CHARINDEX(' ', @sub))
SET @sub = SUBSTRING(@sub, CHARINDEX(' ', @sub) + 1, LEN(@sub))
SET @C = LEFT(@sub, CHARINDEX(' ', @sub))
SET @D = SUBSTRING(@sub, CHARINDEX(' ', @sub) + 1, LEN(@sub))
INSERT INTO @result VALUES(@Word, @A, @B, @C, @D)
END
END
RETURN
END