Как избавиться от оставшихся черточек, превышающих длину моего атрибута в выводе оператора select? - PullRequest
0 голосов
/ 02 мая 2020
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)"?

1 Ответ

0 голосов
/ 02 мая 2020

Дайте этому выражению псевдоним:

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.

Но, вообще говоря, это как .

...