我有以下結構的表:SQL服務器 - 訂單數據層次從表
| ObjectID | ParentID | Description | Level |
----------------------------------------------------
| 1000 | NULL | Food | 0 |
| 1001 | 1000 | Fruit | 1 |
| 1002 | 1000 | Vegetable | 1 |
| 1003 | 1001 | Apple | 2 |
| 1004 | 1001 | Banana | 2 |
| 1005 | 1002 | Cabbage | 2 |
| 1006 | 1002 | Spinach | 2 |
| 1007 | 1003 | Red | 3 |
| 1008 | 1003 | Green | 3 |
| 1009 | 1007 | Single | 4 |
| 1010 | 1007 | Bunch | 4 |
| 1011 | 1010 | Organic | 5 |
| 1012 | 1010 | Non-Organic | 5 |
它基本上列出一個表中一羣具有層次的對象。 現在我需要能夠查詢此表,並提出基於單個ObjectID
的層次結構。像這樣:
在這個例子中,我需要搶在「蘋果」層次的一切,這樣的結果集將是:
| ObjectID | ParentID | Description | Level |
----------------------------------------------------
| 1003 | 1001 | Apple | 2 |
| 1007 | 1003 | Red | 3 |
| 1009 | 1007 | Single | 4 |
| 1010 | 1007 | Bunch | 4 |
| 1011 | 1010 | Organic | 5 |
| 1012 | 1010 | Non-Organic | 5 |
| 1008 | 1003 | Green | 3 |
聲明本如何通過性命令行,其中直接子來在父母之後。
我真的很感謝幫助!謝謝!
這個問題並沒有表現出任何的研究工作。 –
[SQL Server遞歸查詢]的可能重複(https://stackoverflow.com/questions/3916597/sql-server-recursive-query) –
此重複說明如何將Level包含在結果中:https:// stackoverflow .com/questions/14274942/sql-server-cte-and-recursion-example –