Db2:如何格式化输出?

Db2: how to format output?

我不喜欢 db2 控制台输出

db2 => SELECT city,SUM(sales) as sum from offices group by city;

CITY                                                                                            SUM                              
---------------------------------------------------------------------------------------------------- ---------------------------------
Rome                                                                                                                        14000,
London                                                                                                                         19000,

我更喜欢这样的东西

db2 => SELECT city,SUM(sales) as sum from offices group by city;

CITY                           SUM                              
------------------------
Rome                           14000
London                         19000                              

我在 Oracle 上使用

set feedback on;
set linesize 9000
set  colsep |
column column1 format a30
column column2 format a20
....

我得到了一个不错的输出 如何格式化 DB2 上的列? 我对最大尺寸感兴趣(a30 表示显示 30 个字符)。

格式化 SQL 输出是客户端应用程序的工作。

您的问题显示使用了一些 Db2 客户端提供的遗留交互式 Db2 Command-Line-Processor (Db2 CLP) 应用程序。与 Oracle SQL*Plus.

相比,Db2 CLP 的格式化功能有限

但是,如果您习惯了 Oracle SQL*Plus 风格的格式化,一些 Db2 客户端提供了一个名为 clpplus 的工具来模拟 SQL*Plus。这意味着您无需学习用于格式化和许多其他操作的新语法。

您可以使用 clpplus 而不是交互式 Db2 CLP,并且 clpplus 允许您将 Oracle SQL*Plus 的许多特性和语法用于 Db2 数据库。

我找到了一个很好的解决方法,使用 SQL 语法的 substr

没有substr

select title,year from titles;

TITLE                                                                                                                                                                                                                                                                                                                                                                                       YEAR                  
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------
Fantasia                                                                                                                                                                                                                                                                                                                                                                                           1940

EEK!

使用 substr

select substr(title,1,19) as title, substr(year,1,4) as year from titles;

TITLE                                  YEAR
-------------------------------------- ----
FANTASIA                               1940

好!