【发布时间】:2015-12-23 07:13:36
【问题描述】:
我正在尝试折叠维护层次结构的表。
我使用的是 SQL Server 2008 R2。
数据看起来像这样。 ID 是唯一的:
ID Country City District Street amount
------------------------------------------------------------------
1 USA New York NULL NULL 1
1 USA New York Manhattan NULL 1
2 EU Paris NULL NULL 1
2 EU Paris arrondissement II NULL 1
2 EU Paris arrondissement II Rue Vivienne 1
2 EU Paris arrondissement IV NULL 1
2 EU Paris arrondissement IV Rue de Rivoli 1
到这里:
ID Country City District Street amount
------------------------------------------------------------
1 USA New York Manhattan NULL 1
2 EU Paris arrondissement II Rue Vivienne 1
2 EU Paris arrondissement IV Rue de Rivoli 1
示例代码:
create table DataTab
(
ID [varchar](10),
Country [varchar](10),
City [varchar](10),
District [varchar](50),
Street [varchar](50),
amount [int]
);
Insert into DataTab
values (1, 'USA', 'New York', NULL, NULL, 1);
Insert into DataTab
values (1, 'USA', 'New York', 'Manhattan', NULL, 1);
Insert into DataTab
values (2, 'EU', 'Paris', NULL, NULL, 1);
Insert into DataTab
values (2, 'EU', 'Paris', 'arrondissement II', NULL, 1);
Insert into DataTab
values (2, 'EU', 'Paris', 'arrondissement II', 'Rue Vivienne', 1);
Insert into DataTab
values (2, 'EU', 'Paris', 'arrondissement IV', NULL, 1);
Insert into DataTab
values (2, 'EU', 'Paris', 'arrondissement IV', 'Rue de Rivoli', 1);
select * from DataTab;
我尝试使用 CTE 解决问题,但不知何故我找不到可行的解决方案。
希望您有时间提供帮助。
【问题讨论】:
-
使用
CTE显示您的查询。 -
当有 5 行 ID 为 2 时,“ID 是唯一的”是什么意思?
标签: sql-server select sql-server-2008-r2 hierarchy collapse