在使用純SQL或甚至PL/SQL之後,生成輸出結果並不會那麼優雅。如果你讓客戶做這項工作會更好。根據您希望如何將最終輸出呈現給最終用戶,您的選擇範圍從簡單的SQL * PLUS到更復雜的報告工具。下面是如何使用SQL * PLUS產生輸出一個簡單的例子:
clear screen;
column workername new_value worker_name;
column date1 new_value d1;
column workername noprint;
column date1 noprint;
set linesize 15;
column free format a7;
column used format a7;
ttitle center worker_name skip 1 -
center '------------' skip 1 -
center d1 skip 1 -
center '------------' skip 1;
set colsep '|'
/* sample of data from your question */
with t1(free, used, date1, workername) as(
select 1, 0, date '2014-12-17', 'A' from dual union all
select 1, 0, date '2014-12-17', 'A' from dual union all
select 1, 0, date '2014-12-17', 'A' from dual
)
select to_char(free) as free
, to_char(used) as used
, to_char(date1, 'mm/dd/yyyy') as date1
, workername
from t1
where workername = 'A'
and date1 = date '2014-12-17';
結果:
A
------------
12/17/2014
------------
FREE |USED
-------|-------
1 |0
1 |0
1 |0
如果有必要產生一個報告,其中包括不同workernames
和/或不同date
,所述break on
SQL * PLUS命令可用於打破上的特定列或多列的組合的報告。例如:
column workername new_value worker_name;
column date1 new_value d1;
column workername noprint;
column date1 noprint;
set linesize 15;
column free format a7;
column used format a7;
ttitle center worker_name skip 1 -
center '------------' skip 1 -
center d1 skip 1 -
center '------------' skip 1;
set colsep '|'
break on worker_name skip page on date1 skip page;
/* sample of data */
with t1(free, used, date1, workername) as(
select 1, 0, date '2014-12-17', 'A' from dual union all
select 1, 0, date '2014-11-17', 'A' from dual union all
select 1, 0, date '2014-12-17', 'A' from dual union all
select 1, 0, date '2014-11-17', 'B' from dual
)
select to_char(free) as free
, to_char(used) as used
, to_char(date1, 'mm/dd/yyyy') as date1
, workername
from t1
order by workername, date1;
結果:
A
------------
11/17/2014
------------
FREE |USED
-------|-------
1 |0
A
------------
12/17/2014
------------
FREE |USED
-------|-------
1 |0
1 |0
B
------------
11/17/2014
------------
FREE |USED
-------|-------
1 |0
這裏是SQL*PLUS user's guide在這裏您可以找到對在上面的例子中所用的任何命令的詳細信息。
什麼是多行標題名稱的邏輯是什麼?問題結果如何有4行問題只有3? – TechDo
什麼版本的Oracle?是它9i中,10G,11G(R1或R2),或圖12C – SriniV
我編輯的問題,並去除第4行。這是我需要顯示的輸出。 – QKWS