我正在尝试在表和标量值函数之间应用连接。我一直在调查,我认为这是不可能的,但因为我没有找到任何最终结论说我想确定。
你知道是否可能吗?
我尝试了以下声明(不工作):
Select *
from T1
join SVFunction on T1.id=SVFunction.id
还有这个(不行):
Select *
from T1
outer apply SVFunction (T1.id)
谢谢。
答案 0 :(得分:3)
您必须尝试以下查询
Select * ,SVFunction(id)
from T1
Scalar valued function返回单个值(不是表),因此您无法使用连接。
如果它是表值函数,您可以使用以下方法,然后使用Apply
:
Select T1.* ,T2.*
From T1 INNER JOIN (SELECT * FROM SVFunction) AS T2 ON T1.id = T2.id
也许问题出在功能代码中。因此,您可以在此Technet topic
中详细了解使用应用答案 1 :(得分:1)
Select *
from T1
JOIN (VALUES(SVFunction)) f(id) on T1.id=f.id
答案 2 :(得分:1)
SELECT * FROM (SELECT SVFunction () as id) join T1 on T1.id = SVFunction.id