我如何摆脱在select语句输出中超过我的属性长度的剩余破折号?

问题描述 投票:0回答:1
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)”后面的破折号吗?

oracle stored-procedures plsql sqlplus
1个回答
0
投票

为该表达式指定别名:

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

但是,总的来说,那是如何

© www.soinside.com 2019 - 2024. All rights reserved.