【问题标题】:Controlling line display length in SQL*Plus在 SQL*Plus 中控制行显示长度
【发布时间】:2018-01-02 15:10:10
【问题描述】:

我们如何水平改变“选择”查询的显示列数(按水平顺序)。 sql 输出仅显示水平序列中的 2 列,并将下一列以两列为一组移动到下一行,如下所示:

NAME | EMP.NO
-----------
DEPT | LOC

我希望它在一行中显示为:

NAME |  EMP.NO  | DEPT NO | LOC

【问题讨论】:

  • 首先,告诉我们您是如何(共享 SQL)和 WHERE(Oracle DB 版本和您用于运行 SQL 的程序)这样做的
  • @thatjeffsmith 使用 oracle 11g,它是对用户定义表的正常选择查询,从命令提示符运行...
  • 好的,但是您使用的是什么程序? SQL*Plus?尝试设置 linesize 80 并再次运行您的查询 - 只是猜测,因为我们不知道您真正在做什么
  • @thatjeffsmith 是的 Sql*plus

标签: oracle sqlplus


【解决方案1】:

嗯,可能你正在寻找这个:

create table TestTable (id number, name varchar2(10))

insert into TestTable values (1, 'John')
insert into TestTable values (2, 'Mckensy')
insert into TestTable values (3, 'Valneech')
insert into TestTable values (4, 'Zeebra')

select 'id', LISTAGG(id, ' ') WITHIN GROUP (ORDER BY name)      
from testtable
union 
select 'name', LISTAGG(name, ' ') WITHIN GROUP (ORDER BY name)
from testtable ; 

实际上我不知道您使用的是哪个 Oracle 版本。

您可以使用PIVOT 子句,可能会有所帮助。

希望它有效。

【讨论】:

    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 2023-01-27
    • 2011-12-30
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多