Это будет дорого, 100 000 000 результатов! Поддержка в SQlserver очень плохая для этого.
Чтобы использовать sp_crosstab (который не входит в число наиболее желательных для выполнения задач), вам нужно три столбца
Так что это были бы 'I', 'J' и f (i, j)
вместо циклов while вы можете делать то, что обычно является ошибкой.
Выберите Table1.Col1, Table2.Col1, Функция (Table1.Col1, Table2.Col2)
Из таблицы 1, таблицы 2
(или из таблицы 1 Присоединиться к таблице 2)
Это дает декартово произведение всех 100 записей в таблице 1, объединенных со всеми 1 000 000 в таблице 2.
Передайте это правильно в sp_crosstab, и вы получите строку для каждого значения в Table2, столбец для каждой строки в Table1 и ячейку, содержащую результат функции.
Сказав это, не удивляйтесь, если это немного медленно, и, возможно, занимает немного памяти ....
Возможно, вы захотите попробовать его с некоторыми меньшими диапазонами.