【问题标题】:SQL output different than the code?SQL 输出与代码不同?
【发布时间】:2015-07-21 06:18:28
【问题描述】:

我正在编写 SQL 代码并在 SSH 安全 shell 客户端中运行,这是运行代码后的输出:

SQL> SELECT SalesRepLName || ' , ' || SalesRepFName AS SalesRep_Name,
  2  SalesRepID AS Sales_Rep_ID, SalesRep.CommClass AS Commission_Class, CommRate AS Commission_Rate
  3   FROM SalesRep_mys SalesRep, Commission_mys Com
  4   WHERE SalesRep.CommClass = Com.CommClass
  5  ORDER BY SalesRepLName;

SALESREP_NAME                               SALES_REP_ID C COMMISSION_RATE
------------------------------------------- ------------ - ---------------
Anderson , Mark                                       21 C             .05
Day , Sara                                            14 Z               0
Hayes , Jennie                                        23 D             .03
Jackson , Bob                                         20 B             .08
Jones , Alice                                         10 A              .1
Moore , Micah                                         22 Z               0
Price , Kay                                            8 C             .05
Taylor , Greg                                         12 B             .08

假设输出完整的名称,如 SalesRepID、SalesRep_name 等。但是对于佣金类(带有字母值的类),它不打印完整的类别名称..?如何修复它以显示 Commission_Class?

【问题讨论】:

  • here
  • 您在 SQL*Plus 中运行它,对吧?
  • 是的,它在 sqlplus 中

标签: oracle sqlplus


【解决方案1】:

您可以使用the COLUMN command 覆盖基于数据类型的默认列宽。在这种情况下,在运行查询之前:

column commission_class format a16

更多来自文档::

字符列
CHAR、NCHAR、VARCHAR2 (VARCHAR) 和 NVARCHAR2 (NCHAR VARYING) 列的默认宽度是数据库中列的宽度。
...
要将数据类型的宽度更改为 n,请使用 FORMAT An。 (A 代表字母。)如果指定的宽度比列标题短,SQL*Plus 会截断标题。

【讨论】:

    猜你喜欢
    • 2018-01-29
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2017-01-03
    • 2018-08-10
    相关资源
    最近更新 更多