select LEVEL, LPAD(' ', 2*LEVEL-1)...这个SQL中lpad函数是要为字段左侧添加空格,这里使用2*LEVEL-1,可解释却说是在左边填充2*(LEVEL-1)个空格?不是(2*LEVEL-1)个空格?谢谢!
2 回答
忽然笑
TA贡献1806条经验 获得超5个赞
lpad用法
lpad(字段名,填充长度,填充的字符)
如果是你那种写法的话函数用法你都用错了
select LEVEL, LPAD(LEVEL,2*LEVEL-1,' ')...
这样才是在左侧加空格
至于添加多少个空格,无非是个四则运算的问题,自己多写几个就知道了
GCT1015
TA贡献1827条经验 获得超4个赞
你应该是看的Oracle 10g的一个专门讲SQL的书,里面的讲分层语句start with和connect by的章节。其实楼主的语句没错,应该意思是在‘ ’空格左边再填上N个空格,通过LEVEL来决定到底空多少,因为减了一个长度,但是最前面是以' '开始的,所以总空格的长度是2*LEVEL,然后在结果集显示时,看着更直观。只是楼主语句没有copy完。
SELECT LEVEL,
LPAD(' ', 2 * LEVEL - 1) || first_name || ' ' || last_name AS employee
FROM more_employees
START WITH employee_id = (
SELECT employee_id
FROM more_employees
WHERE first_name = 'Kevin'
AND last_name = 'Black'
)
CONNECT BY PRIOR employee_id = manager_id;
完整的语句应该是。
- 2 回答
- 0 关注
- 396 浏览
添加回答
举报
0/150
提交
取消