Oracle中使用connect by 来实现树状查询

来源:互联网 发布:未闻花名,但知花香整句 编辑:程序博客网 时间:2024/04/30 13:40
 
Oracle中使用connect by 来实现树状查询,其中可以使用level这个伪列来实现分层查询。
SELECT lpad(' ', (level - 1) * 4, ' ') || NAME AS NAME,
       ID 
FROM TB
CONNECT BY PRIOR ID = PID
 START WITH DEPT = '根的ID'
 
Lpad函数的用法
lpad函数将左边的字符串填充一些特定的字符其语法格式如下:   
     lpad( string1, padded_length, [ pad_string ] )
     string:1是需要粘贴字符的字符串
     padded_length:是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成padded_length;
     pad_string是个可选参数,这个字符串是要粘贴到string1的左边,如果这个参数未写,lpad函数将会在string1的左边粘贴空格。
    例如:
lpad('tech', 7);
将返回' tech'
lpad('tech', 2);
将返回'te'
lpad('tech', 8, '0');
将返回'0000tech'
lpad('tech on the net', 15, 'z');
将返回 'tech on the net'
lpad('tech on the net', 16, 'z');
将返回 'ztech on the net'
Level伪列显示是第几级菜单