SQL Server将视图与基于层次结构的集合交叉
我的SQL Server数据库中有一个视图,它基本上根据int类型的id值保存一些记录之间的层次结构信息。一个简单的表示如下:SQL Server将视图与基于层次结构的集合交叉,sql,sql-server,view,hierarchy,cross-join,Sql,Sql Server,View,Hierarchy,Cross Join,我的SQL Server数据库中有一个视图,它基本上根据int类型的id值保存一些记录之间的层次结构信息。一个简单的表示如下: ID Parent_ID 1 NULL 2 1 3 2 4 NULL 5 4 ID Value 1 1 1 2 2 1 2 2 3 1 3 2 4 3 5 3 通过使用这个视图,
ID Parent_ID
1 NULL
2 1
3 2
4 NULL
5 4
ID Value
1 1
1 2
2 1
2 2
3 1
3 2
4 3
5 3
通过使用这个视图,我试图生成另一个视图。我希望从ID=1(1、2和3)派生的所有记录都与一个集合交叉,而其他记录(4、5)与另一个集合交叉。例如,将从ID=1派生的所有记录与集合(1,2)交叉,并将其他记录与集合3交叉,我需要如下视图:
ID Parent_ID
1 NULL
2 1
3 2
4 NULL
5 4
ID Value
1 1
1 2
2 1
2 2
3 1
3 2
4 3
5 3
你有什么问题?你尝试过什么?用集合交叉表是可能的,但我需要一种机制,让对象的所有祖先检查对象的id是否在其中,以决定我需要与哪个集合交叉。似乎我需要一个类似光标的方法。我认为CTE的魔力在于它,但我不知道如何使用它