SPOOL IT2T2SolutionOutputNN.txt
SET ECHO ON
SET FEEDBACK ON
SET LINESIZE 100
SET LINE 132
SET PAGESIZE 200
SET SERVEROUTPUT ON
create or replace procedure numberOfSupplier(X IN NUMBER)
IS
supplierDetails SYS_REFCURSOR;
begin
open supplierDetails for
select R_NAME, N_NAME, COUNT(S_NATIONKEY)
from supplier
inner join nation on supplier.s_nationkey = nation.n_nationkey
inner join region on nation.n_regionkey = region.r_regionkey
group by R_NAME, N_NAME
having COUNT(S_NATIONKEY) > X;
DBMS_SQL.RETURN_RESULT(supplierDetails);
end numberOfSupplier;
/
columns clear
execute numberOfSupplier(130)
SPOOL OFF
输出为:
ResultSet #1
R_NAME N_NAME COUNT(S_NATIONKEY)
------------------------- ------------------------- ------------------
ASIA INDONESIA 131
ASIA CHINA 145
MIDDLE EAST SAUDI ARABIA 132
EUROPE GERMANY 132
4 rows selected.
我正在尝试将每一行中的值居中,所以我将lpad函数添加到属性“ COUNT(S_NATIONKEY)”:
select R_NAME, N_NAME, LPAD(COUNT(S_NATIONKEY), 10) as "COUNT(S_NATIONKEY)" etc...
它变成:
ResultSet #1
R_NAME N_NAME COUNT(S_NATIONKEY)
------------------------- ------------------------- ----------------------------------------
ASIA INDONESIA 131
ASIA CHINA 145
MIDDLE EAST SAUDI ARABIA 132
EUROPE GERMANY 132
4 rows selected.
可以帮我摆脱“ COUNT(S_NATIONKEY)”后面的破折号吗?
为该表达式指定别名:
select (...), COUNT(S_NATIONKEY) as number_of_nationkeys
然后,在运行查询之前,将列的格式设置为(您写的所有SET
中的形式为]
col number_of_nationkeys format 99999999999999999999
(9的数字表示“ number_of_nationkeys”中的字符数)。当然,如果您使用较短的别名,例如,它将看起来更漂亮。 cnt_nat
;然后您会col cnt_nat format 9999999
。
但是,总的来说,那是如何。