我有一个内联TVF接受表的主键,并用该主键计算一行中的值(实际上是一个带有该值的表作为select的一部分,但无论如何)。
现在我想做这样的事情:
SELECT something
FROM table1
CROSS APPLY thefunction(table1primarykey) func
ON func.computedvalue = func.computedvalue(table2primarykey)
问题是我还没有使用table2,也无法使用它,因为table1和table2连接的唯一方法是通过相同的函数返回值。
我该怎么办?
答案 0 :(得分:0)
怎么样
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