不应该是(2*LEVEL-1)个空格?

select LEVEL, LPAD(' ', 2*LEVEL-1)...
这个SQL中lpad函数是要为字段左侧添加空格,这里使用2*LEVEL-1,可解释却说是在左边填充2*(LEVEL-1)个空格?不是(2*LEVEL-1)个空格?谢谢!

慕容森
浏览 397回答 2
2回答

忽然笑

lpad用法lpad(字段名,填充长度,填充的字符)如果是你那种写法的话函数用法你都用错了select LEVEL, LPAD(LEVEL,2*LEVEL-1,' ')...这样才是在左侧加空格至于添加多少个空格,无非是个四则运算的问题,自己多写几个就知道了

GCT1015

你应该是看的Oracle 10g的一个专门讲SQL的书,里面的讲分层语句start with和connect by的章节。其实楼主的语句没错,应该意思是在‘ ’空格左边再填上N个空格,通过LEVEL来决定到底空多少,因为减了一个长度,但是最前面是以' '开始的,所以总空格的长度是2*LEVEL,然后在结果集显示时,看着更直观。只是楼主语句没有copy完。SELECT LEVEL,LPAD(' ', 2 * LEVEL - 1) || first_name || ' ' || last_name AS employeeFROM more_employeesSTART WITH employee_id = (SELECT employee_idFROM more_employeesWHERE first_name = 'Kevin'AND last_name = 'Black')CONNECT BY PRIOR employee_id = manager_id;完整的语句应该是。 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Oracle