-1

假设我们有包含以下信息的表格

id  name  level   Parent_id
1   A     1       ---
2   B     1       ----
3   C     2       1
4   D     2       2
5   E     3       3
6   F     3       4
7   G     4       5
8   H     4       5

我想要这种格式的结果。

id  L1Name   L2 Name  L3 Name  L4Name
1   A        -        -        -
2   B        -        -        -    
3   A        C        -        -
4   B        D        -        -    
5   A        C        E        -
6   B        D        F        -
7   A        C        E        G
8   A        C        E        H

我想要这个结果在 mysql 中。我们可以通过先验使用 Connect 在 oracle 中找到它。在mysql中怎么样。请帮助。

4

1 回答 1

1

你可能会找这个

     select id , L1Name,   L2Name , L3Name , L4Name
     from (
         select id ,
         if(level =1 , name , '--') L1Name ,
         if(level =2 , name , '--') L2Name ,
         if(level =3 , name , '--') L3Name ,
         if(level =4 , name , '--') L4Name 
         from Table1
         )t

在这里演示

编辑 :

试试这个

 SELECT id, L1Name,   L2Name , L3Name , L4Name
 FROM (
     SELECT id,
     IF(id in(1,3,5,7), 'A' , 'B') L1Name ,
     IF(id in(3,5,7) , 'C' , if(id in(1,2), '-', 'D')) L2Name ,
     IF(id in(5,7),'E',if(id in(1,2,3,4), '-', 'F')) L3Name ,
     IF(id =7 , 'G' , if(id in(1,2,3,4,5,6), '-', 'H')) L4Name 
     FROM Table1
 )t

SQL 演示在这里

于 2013-02-08T13:10:04.810 回答