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 關注
- 457 瀏覽
添加回答
舉報
0/150
提交
取消