我正在使用MS SQL 2005。 我已将树结构定义为:
1
|\
2 3
/|\
4 5 6
我已经创建了一个SQL函数Subs(id),它获取了id,并返回了子树表。 因此,Subs(3)将返回4行3,4,5,6,而Subs(2)将返回一行,为2。
我有一个select语句,它返回上面的ID(用其他表连接这个树)
我想要在返回上述Ids的select语句之后 (这将产生一个表格,例如2行:)
2
3
能够将子功能作为
Subs(2)
union
Subs(3).
(结果应该是id为2,3,4,5,6的行)
问题是我不知道如何传递参数,我不知道如何动态使用union。
是否可以在此级别解决此问题,还是应该将其提升到较高级别(C#)?
答案 0 :(得分:1)
我认为你不需要UNION,使用SQL Server 2005你可以使用CROSS APPLY实现所需的结果:
select
f.*
from
resultsTable rt
cross apply dbo.subs(rt.ID) f
假设resultTable是存储第一个查询结果的结果,而字段的名称是ID
答案 1 :(得分:-1)