【问题标题】:Display a disorderly table sql*plus显示乱表sql*plus
【发布时间】:2015-03-29 17:54:26
【问题描述】:

当我使用命令选择时:

select * from joueur 

表格的显示:

NUJOUEUR NOM
---------- ------------------------------------------------------------
PRENOM                              ANNAISS
------------------------------------------------------------ ----------
NATIONALITE
------------------------------------------------------------
16 MARTINEZ
Conchita                               1972
Espagne

有这样的表的命令是什么:

 NUJOUEUR  NOM    PRENOM    ANNAISS   NATIONALITE
 ------------------------------------------------------------
 16      MARTINEZ Conchita  1972      Espagne

【问题讨论】:

  • 必须了解表是一组无序的行。如果没有适当的order by 子句,RDBMS 可以以任何顺序返回行——甚至没有保证两个连续查询将以相同的顺序返回行。
  • set linesize 32000

标签: sql oracle oracle10g sqlplus


【解决方案1】:

不是无序的。这只是很长的换行的显示。您需要几个 COLUMN 选项之一来根据您的喜好进行修复。

For example,要将NOM 列的显示宽度更改为10个字符,您将编写:

COLUMN NOM FORMAT A10
/

您必须以这种方式调整所有列的格式,直到它适合您的需要。最后但同样重要的是,如果可以接受截断数据,则需要将 WRAP 设置为 OFF

SET WRAP OFF
/

(如果您需要按列微调换行,COLUMN
WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED] 选项。请
参阅文档了解更多详情)

【讨论】:

    【解决方案2】:

    在查询中使用order by 子句和排序方向asc | desc 来保持特定顺序,如下所示。否则,将无法保证任何特定的顺序。

    select * from joueur order by some_column asc;
    

    没有维护默认顺序。查看此帖子SQL: What is the default Order By of queries?

    编辑:根据您在帖子中的编辑;这只是您的屏幕/控制台窗口宽度的问题。增加您的控制台窗口大小,您应该可以根据需要将所有列放在一行中。

    【讨论】:

    • 我希望所有人都能看到所有表格,但我的显示混乱。
    • @ClasseEnsiE,这就是回答中所说的;在列上使用order by 子句以获取特定顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2020-07-30
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多