oracle解决显示数据的层次问题--实现数据缩进

一、Lpad函数

lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string])

string 字符或者参数

n 字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

pad_string 可选参数,这个字符串是要粘贴到string的左边,若这个参数未写,lpad函数将会在string的左边粘贴空格。

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'

二、Rpad函数

rpad函数将右边的字符串填充一些特定的字符其语法格式如下:rpad(string,n,[pad_string])

string 字符或者参数

n 字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

pad_string 可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。

rpad('tech', 7); 将返回' tech' rpad('tech', 2); 将返回'te' rpad('tech', 8, '0'); 将返回'tech0000' rpad('tech on the net', 15, 'z'); 将返回'tech on the net' rpad('tech on the net', 16, 'z'); 将返回'tech on the netz'

举例:

select t.*, a.*,lpad('   ', 3 * (t.node_level - 1))|| t.node_name node_name1---缩进

from gdscyxnew.tree_item t left join gdscyxnew.dm_yb_sdrl a

on t.node_id = a.node_id

and to_char(a.issue_id, 'yyyymm') = '201505'

where t.tree_type_id = '1'

原文地址:https://www.cnblogs.com/rainowl-ymj/p/4602237.html