表值用户定义的SQL函数(tab—ufn)的结果可以用作其他SQL命令中的表.
例如,我有几个SELECT
个命令由UNION
组合,其中每一个SELECT
个命令使用JOIN
,其结果是具有相同参数的tab—ufn.(这样,tab—ufn总是返回相同的结果.类似于这样:
SELECT a, b, c
FROM table1 JOIN dbo.ufn_tab(x, y) ON <condition1>
WHERE <condition2>
UNION
SELECT a, b, c
FROM table2 JOIN dbo.ufn_tab(x, y) ON <condition3>
WHERE <condition4>
UNION
SELECT a, b, c
FROM table3 JOIN dbo.ufn_tab(x, y) ON <condition5>
WHERE <condition6>
UNION
SELECT a, b, c
FROM table4 JOIN dbo.ufn_tab(x, y) ON <condition7>
WHERE <condition8>
如何避免重复调用同一tab—ufn?是否有任何方法允许捕获(而不复制)结果行集用作表?(我的意思是在其他SQL代码中,在SQL服务器上.我不想把结果放在临时表上.有可能吗?
我正在使用MS—SQL(其中几个,不是很老的版本).