Mẹo #3: Oracle - Tạo đường dẫn cây dữ liệu của 1 trường trong cấu trúc bảng dạng cây

Kết quả hình ảnh cho tip and trick programming image

Giả sử bạn có bảng dữ liệu với cấu trúc như sau:
ID
Code
ParentID
Name
1
01

Parent node 01
2
0101
1
Child 01
3
0102
1
Child 02
4
010201
3
Child 01 of Child 02
5
010202
3
Child 02 of Child 02
6
02

Parent node 02
7
0201
4
Child 03
8
0202
4
Child 04

Và vì một lý do nào đó bạn muốn có đường dẫn để sắp xếp cây hay làm một điều gì đó như kết quả dưới đây:
ID
Code
ParentID
Name
PathTree
Level
Leaf
1
01

Parent node 01
1
1
0
2
0101
1
Child 01
1.2
2
1
3
0102
1
Child 02
1.3
2
0
4
010201
3
Child 01 of Child 02
1.3.4
3
1
5
010202
3
Child 02 of Child 02
1.3.5
3
1
6
02

Parent node 02
6
1
0
7
0201
4
Child 03
6.7
2
1
8
0202
4
Child 04
6.8
2
1
Bạn ghép đoạn query này nhé:
   SELECT  ID, Code, ParentID, Name ,
                    LTRIM(SYS_CONNECT_BY_PATH(ID,'.'),'.')) AS PathTree,
                    LEVEL, CONNECT_BY_ISLEAF AS LEAF
    FROM TableName
    START WITH ParentID IS NULL CONNECT BY ParentID = PRIOR ID
              ORDER BY PathTree;
 Bạn có thể thay dấu '.'  bằng một ký tự khác hợp lệ nhé. :)
Share on Google Plus

About Practice makes perfect

Chia sẻ cũng là một cách để học được nhiều hơn.
Có công mài sắt có ngày nên kim - Practice makes perfect
    Blogger Comment

0 nhận xét:

Đăng nhận xét