Если у меня есть таблица с такими данными, как:
Test1
Test2
Test3
Test4
Test5
И еще одна таблица с такими данными, как:
Foo1
Foo2
Foo3
Как я могу объединить последнюю с первой, например:
Test1 Foo1
Test2 Foo2
Test3 Foo3
Test4 Foo1
Test5 Foo2
По существу, повторяя ту же последовательность из второй таблицы для всей первой таблицы.
РЕДАКТИРОВАТЬ: Мне также нужны данные во второй таблице, чтобы остаться вэтот порядок (он исходит из табличной переменной), даже если они не имеют естественного порядка в алфавитном порядке.
Итак, если вторая таблица выглядит следующим образом:
Foo2
Foo3
Foo1
Результат должен выглядеть следующим образом:
Test1 Foo2
Test2 Foo3
Test3 Foo1
Test4 Foo2
Test5 Foo3
РЕДАКТИРОВАТЬ2: Данные для второй таблицы поступают из следующих TVF
.Я разделяю строку, которая выглядит как "Foo1, Foo2, Foo3".Как бы я добавить последовательность к результату этого разделения?
CREATE FUNCTION [dbo].[Split]
(
@Data varchar(max),
@Delimiter varchar(max)
)
RETURNS @Tokens table
(
Token varchar(max)
)
AS
BEGIN
while (charindex(@Delimiter, @Data) > 0)
begin
insert into @Tokens (Token)
select
ltrim(rtrim(substring(@Data,1,charindex(@Delimiter,@Data)-1)))
select
@Data = substring(
@Data,charindex(@Delimiter,@Data)+len(@Delimiter),len(@Data))
end
insert into @Tokens (Token)
select
ltrim(rtrim(@Data))
return