这听起来不太难,对吗?但确实如此。
有人有一个程序可以通过以下方式调用我的视图:
SELECT * FROM view WHERE ID=6
视图必须将6传递给UDF
(用C#编写并且在T-SQL中太复杂了):
SELECT * FROM udf(6)
UDF存在并且有效。我无法弄清楚如何编写视图以使其WHERE子句中的ID成为udf的参数。
我会屈服于任何级别来实现这一目标。请帮忙。谢谢。
答案 0 :(得分:0)
您可以尝试使用构造(虽然我认为这是一个坏主意):
create view myView
as
select IDs.ID, f.Value
from (values (1), (2), (3), (4), (5), (6)) IDs(ID) -- possible ID values
cross apply udf(IDs.ID) f
GO
select * from myView where ID=6
然而,如果UDF具有多个参数,这种方法可能几乎无用,如果它具有可数不佳或不可数类型的参数,则无用。