表连接与标量值函数

时间:2016-11-23 09:03:39

标签: sql sql-server join

我正在尝试在表和标量值函数之间应用连接。我一直在调查,我认为这是不可能的,但因为我没有找到任何最终结论说我想确定。

你知道是否可能吗?

我尝试了以下声明(不工作):

Select * 
from T1
join SVFunction on T1.id=SVFunction.id

还有这个(不行):

Select * 
from T1
outer apply SVFunction (T1.id)

谢谢。

3 个答案:

答案 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