我正在使用的UDF(my_udf)將JobId作爲參數,並返回已應用於作業的不同候選人(候選人ID)及其相應分數的表格。與表值函數結合使用
現在我想顯示所有候選人,他們已經應用的工作和相應的分數的列表。 所以我的查詢是這樣的:
select * from JobANDCandidates jc inner join Candidates c ON jc.candidateId = c.Id inner join Jobs j on j.Id = jc.jobId Cross apply my_udf(jc.JobId)
但上面的查詢需要太多的時間和不正確。
我以某種方式需要交叉僅適用於基於候選ID從UDF返回的行。 我試過 CROSS APPLY my_udf(jc.JobId) fun ON/WHERE fun.candidateId = c.Id
,但ON子句或WHERE子句都不起作用。我得到編譯錯誤。
請幫
所以查詢沒有返回正確的結果?也許你應該在影響表演之前解決這個問題。我們在這裏確實幫不了忙,因爲在這一點上沒有任何細節。表格定義和功能至少。這裏是一個開始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –
也許交叉應用需要反對子查詢...'交叉apply(select * from my_udf(jc.jabID)''或者你需要一個where cluase來指定你的UDF如何與其他記錄相關? – xQbert
函數內容如何?如果這是一個多語句表值函數,它會相當往往表現比標量函數還要糟糕,底線是你關心性能,但是我們看不到任何代碼或者表的定義 –