我試圖摺疊維護層次結構的表。SQL Server:將文本行摺疊爲一行或多行
我正在使用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'顯示您的查詢。 – Wanderer
當Id 2有5行時,你的意思是「Id是否唯一」? –