5

在 MySQL 中运行命令行查询时,您可以选择使用“ \G ”作为语句终止符,而不是在屏幕上水平列出结果集列,而是垂直列出每一列,对应的数据在右侧。有没有办法使用 DB2 命令行实用程序实现相同或相似的事情?

常规 MySQL 结果示例

mysql> select * from tagmap limit 2;
+----+---------+--------+
| id | blog_id | tag_id |
+----+---------+--------+
| 16 |       8 |      1 |
| 17 |       8 |      4 |
+----+---------+--------+

示例替代 MySQL 结果:

mysql> select * from tagmap limit 2\G
*************************** 1. row ***************************
     id: 16
blog_id: 8
 tag_id: 1
*************************** 2. row ***************************
     id: 17
blog_id: 8
 tag_id: 4
2 rows in set (0.00 sec)

显然,当列是大字符串时,或者当结果集中有很多列时,这会更有用,但这比我可能解释的更好地展示了格式。

4

3 回答 3

2

我认为 DB2 命令行客户端不提供这样的选项。有关一些建议,请参阅http://www.dbforums.com/showthread.php?t=708079。有关 DB2 命令行客户端的更一般信息集,您可以查看 IBM DeveloperWorks 文章DB2 的命令行处理器和脚本

于 2008-10-02T06:55:40.227 回答
0

有点晚了,但是当我搜索仅检索所选数据的选项时发现了这篇文章。

所以db2 -x <query>只返回结果。更多选项可以在这里找到:https ://www.ibm.com/docs/en/db2/11.1?topic=clp-options

例子:

[db2inst1@a21c-db2 db2]$ db2 -n select postschemaver from files.product

POSTSCHEMAVER                   
--------------------------------
147.3                           

  1 record(s) selected.

[db2inst1@a21c-db2 db2]$ db2 -x select postschemaver from files.product        
147.3                           
于 2021-11-02T16:52:33.453 回答
-2

DB2 命令行实用程序始终以表格格式显示数据。即水平行和垂直列。它不支持任何其他格式,如 mysql 的 \G 语句终止符。但是是的,当设置了 DB2_WORKLOAD=ANALYTICS 时,您可以将按列组织的数据存储在 DB2 表中。

db2 => connect to coldb

   Database Connection Information

 Database server        = DB2/LINUXX8664 10.5.5
 SQL authorization ID   = BIMALJHA
 Local database alias   = COLDB

db2 => create table testtable (c1 int, c2 varchar(10)) organize by column
DB20000I  The SQL command completed successfully.
db2 => insert into testtable values (2, 'bimal'),(3, 'kumar')
DB20000I  The SQL command completed successfully.
db2 => select * from testtable

C1          C2        
----------- ----------
          2 bimal     
          3 kumar     

  2 record(s) selected.

db2 => terminate
DB20000I  The TERMINATE command completed successfully.
于 2014-12-23T10:56:45.133 回答