Как я могу использовать CROSS APPLY в этой ситуации? - PullRequest
1 голос
/ 27 марта 2012

У меня есть встроенный TVF, который принимает первичный ключ таблицы и вычисляет значение из строки с этим первичным ключом (фактически таблица с этим значением как часть выбора, но неважно).

Теперь я хочу сделать что-то вроде этого:

SELECT something
FROM table1
CROSS APPLY thefunction(table1primarykey) func
     ON func.computedvalue = func.computedvalue(table2primarykey)

Проблема в том, что я еще не использовал table2 и не мог этого сделать, потому что единственный способ объединить table1 и table2 - это одно и то же возвращаемое значение функции.

Как мне сделать что-то подобное?

1 Ответ

0 голосов
/ 27 марта 2012

Как насчет

SELECT *
FROM (
    SELECT *
    FROM table1
    CROSS APPLY thefunction(table1primarykey)
) AS t1
INNER JOIN (
    SELECT *
    FROM table2
    CROSS APPLY thefunction(table2primarykey)
) AS t2 ON t1.computedvalue = t2.computedvalue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...