2014-08-29 60 views
1

我使用Access。我已經存儲函數從另一個表中返回隨機關鍵字。如果我插入這個函數在我的SQL查詢每行接收相同的結果(相同的關鍵字)。 如何在SQL中輕鬆實現爲每一行調用這個函數?每行調用函數

SELECT ID, StoredFunction() AS Result 
FROM Table 

_

ID  Result 
------------------- 
1 | 1 result 
2 | 1 result 
3 | 1 result 

我需要

ID Result 
------------------- 
1 | 1 result 
2 | 2 result 
3 | 3 result 
+1

好的,這裏有什麼問題? – WillardSolutions 2014-08-29 20:05:19

+1

這裏有幾個關鍵信息位缺失。 – 2014-08-29 20:05:42

回答

2

,你得到相同的結果每行的原因是由於訪問嘗試優化查詢你。它看到StoredFunction()每行調用一次,並認爲因爲沒有參數傳遞給函數,所有調用都應該返回相同的結果。這對你的函數的性質顯然是不正確的。您可以通過將一個或多個參數傳遞給該函數來避免此自動優化。參數不必以任何方式使用,但Access會將StoredFunction(ID)視爲它需要在每一行上調用的內容,因爲結果可能會有所不同。您所需要做的就是將您的功能聲明從Public StoredFunction() As Variant更改爲Public StoredFunction(v As Variant) As Variant。然後,將您的查詢更改爲SELECT ID, StoredFunction(ID) AS Result FROM Table。你不需要在函數本身內部改變任何東西

+0

邏輯和簡單。非常感謝 :-) – 2014-08-30 06:00:55