在 SQL*Plus 中控制行显示长度
Posted
技术标签:
【中文标题】在 SQL*Plus 中控制行显示长度【英文标题】:Controlling line display length in 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 How do I format my oracle queries so the columns don't wrap?的可能重复 【参考方案1】:嗯,可能你正在寻找这个:
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')
2°
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
子句,可能会有所帮助。
希望它有效。
【讨论】:
以上是关于在 SQL*Plus 中控制行显示长度的主要内容,如果未能解决你的问题,请参考以下文章