如何在连接子句中使用自定义函数?

How to use a custom function in a join clause?

我对以下语句有疑问:

SELECT
      B.idimpianto, 
      B.CodiceImpianto, 
      B.DescrizioneImpianto,
      B.CodiceCDC, 
      B.descrizioneCDC
FROM ITCOWBase.dbo.GetImpiantiUtente(B.idimpianto) AS A 
INNER JOIN dbo.vImpianti AS B ON A.idimpianto = B.idimpianto

当我尝试执行它时,SQL 解析器说:

the multipart identifier B.impianto could not be bound.

你想要apply:

SELECT     B.idimpianto, B.CodiceImpianto, B.DescrizioneImpianto,
           B.CodiceCDC, B.descrizioneCDC
FROM dbo.vImpianti b cross apply
     ITCOWBase.dbo.GetImpiantiUtente(B.idimpianto) 

看起来你只是在过滤,所以你想要 cross apply 而不是 outer apply