Есть такие данные
DECLARE @tbl TABLE (name1 varchar(5),name2 varchar(5),name3 varchar(5))
INSERT INTO @tbl(name1,name2,name3)
values ('P1','A1','AA1'),('P1','B1','AA2'),('P1','C1','AA3'),('P1','A1','AA4')
Таблица ввода:
name1 name2 name3
P1 A1 AA1
P1 B1 AA2
P1 C1 AA3
P1 A1 AA4
Я хочу выбрать из этого немного странного дерева, результат должен быть таким:
col1 col2
P1 A1
A1 AA1
A1 AA4
P1 B1
B1 AA2
P1 C1
C1 AA4
Пример для первых строк 'P1','A1','AA1'
P1
является корнем для A1
, A1
является корнем для AA1
, но A1
является корнем для AA4
в 'P1','A1','AA4'
. Поэтому выходные данные должны быть как:
P1 A1
A1 AA1
A1 AA4
Sqlfiddle: http://www.sqlfiddle.com/#!18/87eb3/1