我创建了一个查询,它将输出带有标题和详细信息的平面文件。 现在,我想添加一个包含详细记录总数的预告片记录。
我已使用row_number正确计算了记录总数,但它显示了每条记录。
如何获取最后一行,以便它反映预告片行中的总计数。
这是我已经为标题和详细信息创建的代码。
SQL> SELECT filerec FROM ( 2 SELECT 'FILENAME' AS filerec, 1 col FROM dual 3 UNION ALL 4 SELECT 'FILEDATE: ' || to_char(SYSDATE,'mm/dd/yyyy') as filerec, 2 col FROM dual 5 UNION ALL 6 SELECT empno || ename AS filerec, NULL col FROM emp 7 ORDER BY 2,1 8 );
这是我想要的输出。 (添加了最后一个rec,'TRAILER:0004')
FILENAME FILEDATE: 02/27/2015 7369SMITH 7499ALLEN 7521WARD 7566JONES TRAILER: 0004
答案 0 :(得分:0)
有几种方法可以做到这一点。我更喜欢使用分组。了解它是如何使用的。我们有一个记录集:
SQL> select
2 'Row ' || rownum
3 from
4 dual
5 connect by
6 level <= 5;
'ROW'||ROWNUM
--------------------------------------------
Row 1
Row 2
Row 3
Row 4
Row 5
现在我们希望添加计数:
SQL> select
2 case
3 when grouping_id(rownum) = 0 then 'Row ' || rownum
4 else 'Total: ' || count(*) || ' row(s)'
5 end
6 from
7 dual
8 connect by
9 level <= 5
10 group by rollup (rownum);
CASEWHENGROUPING_ID(ROWNUM)=0T
------------------------------------------------------
Row 1
Row 2
Row 3
Row 4
Row 5
Total: 5 row(s)
6 rows selected