Oracle中使用connect by 来实现树状查询,其中可以使用level这个伪列来实现分层查询。
SELECT lpad(' ', (level - 1) * 4, ' ') || NAME AS NAME,
ID
ID
FROM TB
CONNECT BY PRIOR ID = PID
CONNECT BY PRIOR ID = PID
START WITH DEPT = '根的ID'
Lpad函数的用法
lpad函数将左边的字符串填充一些特定的字符其语法格式如下:
lpad( string1, padded_length, [ pad_string ] )
string:1是需要粘贴字符的字符串
padded_length:是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成padded_length;
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伪列显示是第几级菜单
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2256488