CREATE CURSOR Table1 (Level1 C(3),level2 C(3), level3 C(3), Desc C(40)) INSERT INTO Table1 VALUES('010','','','AAA') INSERT INTO Table1 VALUES('010','002','','BBBBBB') INSERT INTO Table1 VALUES('010','002','005','CCCCCCCCC') INSERT INTO Table1 VALUES('010','002','013','DDDDDDDDD') INSERT INTO Table1 VALUES('010','002','015','EEEEEEEEE') INSERT INTO Table1 VALUES('010','002','016','FFFFFFFFF') INSERT INTO Table1 VALUES('010','002','018','GGGGGGGGG') INSERT INTO Table1 VALUES('010','003','','HHHHHH') INSERT INTO Table1 VALUES('010','003','005','JJJJJJJJJ') INSERT INTO Table1 VALUES('010','003','017','KKKKKKKKK') INSERT INTO Table1 VALUES('010','003','028','LLLLLLLLL') INSERT INTO Table1 VALUES('010','003','072','MMMMMMMMM') INSERT INTO Table1 VALUES('010','003','084','NNNNNNNNN') INSERT INTO Table1 VALUES('010','003','085','OOOOOOOOO') INSERT INTO Table1 VALUES('010','003','086','PPPPPPPPP') INSERT INTO Table1 VALUES('010','003','087','RRRRRRRRR') INSERT INTO Table1 VALUES('010','003','088','SSSSSSSSS') INSERT INTO Table1 VALUES('010','003','089','TTTTTTTTT') SELECT ; T1.Desc Desc1; , T2.Desc Desc2; , T3.Desc Desc3; FROM Table1 T3; JOIN Table1 T1 ON T1.Level1=T3.Level1 AND T1.Level2=' ' AND T1.Level3=' '; JOIN Table1 T2 ON T2.Level1=T3.Level1 AND T2.Level2=T3.Level2 AND T2.Level3=' '; WHERE NOT T3.level3=' '; ORDER BY 2,3