回答
您需要使用CROSS APPLY實現此目的
select
f.*
from
users u
cross apply dbo.tvfHello(u.ID) f
這看起來不錯給我,除了你應該總是與他們的架構(通常是DBO)前綴的功能。因此,查詢應該是:
SELECT * FROM dbo.tvfHello(@param) WHERE @param IN (SELECT ID FROM Users)
我不認爲,那會奏效。如果你沒有定義@param,你會得到:必須聲明標量變量「@參數」。錯誤。如果你定義了@param,你會得到結果給任何@param分配的(默認爲NULL)。要獲得全套結果,您需要使用CROSS APPLY – kristof 2008-12-03 10:45:38
你在說什麼?我只是糾正了句子中提供的查詢。 Rajivdas從未說明他的查詢的意圖,所以你不可能知道他是否需要進行CROSS APPLY。 – 2008-12-03 11:05:45
的確,問題並不十分清楚,我根據Rajivdas提出的評論回答喬希的回答。看看NTulip發表的評論,看看有些人感到困惑。但肯定的是,我本來可能會在我的案例中錯誤地解釋 – kristof 2008-12-03 16:05:09
在AdventureWorks數據庫以下工作:
CREATE FUNCTION dbo.EmployeeByID(@employeeID int)
RETURNS TABLE
AS RETURN
(
SELECT * FROM HumanResources.Employee WHERE EmployeeID = @employeeID
)
GO
DECLARE @employeeId int
set @employeeId=10
select * from
EmployeeById(@employeeId)
WHERE @EmployeeId in (SELECT EmployeeId FROM HumanResources.Employee)
編輯
基於克里斯托夫的專業知識,如果你試圖讓你多值我已經更新了這個樣本可以舉例:
select *
from HumanResources.Employee e
CROSS APPLY EmployeeById(e.EmployeeId)
WHERE e.EmployeeId in (5,6,7,8)
- 1. 如何通過OID參數PostgreSQL函數
- 2. 如何通過一個模板函數模板參數列表
- 3. C++:通過模板傳遞參數Vs通過函數參數
- 4. 如何通過參數值的Android
- 5. 如何通過Xpath的值javascript函數
- 6. 如何通過DATA-值jQuery函數
- 7. 查詢參數值的通過列表
- 8. 如何通過JSF參數的值作爲方法參數?
- 9. 如何通過參數angularjs
- 10. 如何通過設置多個參數值來獲取報表參數SSRS
- 11. 通過高階函數傳遞參數
- 12. php函數調用參數不通過
- 13. 無法通過ylim參數的函數
- 14. 函數創建通過參數
- 15. 通過函數參數確定變量
- 16. 通過匿名函數作爲參數
- 17. 通過onclick函數發送參數 - Javascript
- 18. 通過函數傳遞參數
- 19. 通過函數參數傳遞變量
- 20. 通過引用C函數的參數
- 21. 通過函數修改參數
- 22. 通過db.transaction函數傳遞參數
- 23. 通過函數傳遞值
- 24. 如何通過匿名塊值與PLSQL表參數
- 25. 如何防止表值函數參數的空值?
- 26. 如何通過值從C#參數傳遞給JavaScript函數與Gekofx
- 27. 通過函數參數動態設置json對象的值
- 28. 如何通過一個函數作爲參數拉斯特
- 29. ZF2 - 我如何通過構造函數參數在Module.php
- 30. 如何通過POST將參數傳遞給Azure函數?
Rajivdas:你能否澄清你的問題多一點。恐怕我們每個人都用不同的方式解釋它 – kristof 2008-12-03 16:07:43