Вам необходимо применить функцию split (myfield) к каждой строке в mytable. Если функция разбиения является табличной функцией, правильный ответ - оператор APPLY :
Оператор APPLY позволяет вам
вызвать табличную функцию для
каждая строка возвращается внешней таблицей
выражение запроса.
Таким образом, ответ должен быть:
select *
from mytable
cross apply dbo.split(myfield, ' ');
Пример:
create table mytable (myfield varchar(10));
insert into mytable (myfield) values ('1 2 3');
go
create function split (@list varchar(max), @delimiter char(1))
returns @shards table (value varchar(8000))
with schemabinding
as
begin
declare @i int;
set @i = 0;
while @i <= len(@list)
begin
declare @n int;
set @n = charindex(@delimiter, @list, @i);
if 0 = @n
begin
set @n = len(@list);
end
insert into @shards (value)
values (substring(@list, @i, @n-@i+1));
set @i = @n+1;
end
return;
end
go
select *
from mytable
cross apply dbo.split(myfield, ' ');