在Oracle數據庫中,LISTAGG函數用于將多行數據連接為單個字符串。在實現分頁輸出時,可以使用ROW_NUMBER()函數和子查詢來實現。
以下是一個示例,假設我們有一個名為employees的表,我們要分頁輸出所有員工的名字,每頁顯示5條記錄:
SELECT name_list
FROM (
SELECT LISTAGG(name, ',') WITHIN GROUP (ORDER BY emp_id) AS name_list,
ROW_NUMBER() OVER (ORDER BY emp_id) AS rn
FROM employees
)
WHERE rn BETWEEN 6 AND 10;
在上面的示例中,我們首先使用LISTAGG函數將員工的名字連接為一個字符串,并使用ROW_NUMBER()函數為每行數據分配一個行號。然后在外部查詢中,我們使用WHERE子句來選擇要顯示的頁數(例如,第二頁的員工名字)。
通過調整BETWEEN子句中的值,可以實現不同頁數的輸出。