【发布时间】:2013-10-10 14:56:52
【问题描述】:
具有大纲编号为的数据库表:
PID Task OutlineNumber
------------------------------
1 Task1 0
2 Task2 1
3 Task3 1.1
4 Task4 1.1.1
5 Task5 2
6 Task6 2.1
7 Task7 2.1.1
我想选择这个数据为:
PID Task CatID SubCatID
------------------------------
1 Task1 0 NULL
2 Task2 1 1
3 Task3 1 2
4 Task4 1 3
5 Task5 2 NULL
6 Task6 2 5
7 Task7 2 6
我使用的是 SQLExpress 2005
【问题讨论】:
-
outlinenumber 可以嵌套多远? 2.1.1 是最长的字符串,还是 2.1.1.1.1.1?
-
这种嵌套方法效率不高。试着看看这个:slideshare.net/billkarwin/models-for-hierarchical-data(后半部分,闭表)
-
那么,为什么
Task2的SubCatID等于1 而Task5没有SubCatID等于2? -
SubCatID 来自哪里?由于值没有出现在您的源数据中?它是某种形式的增量数字(计算空值)吗?!
-
@Tanner,在我看来,它应该是来自“父”任务的
PID。我的理论的问题是PID = 2有PID = 1作为父级,但PID = 5没有PID = 2作为父级。似乎不一致
标签: sql sql-server sql-server-2005