【问题标题】:How to format column length on select query in oracle 11g?如何在 oracle 11g 中格式化选择查询的列长度?
【发布时间】:2021-07-06 22:50:04
【问题描述】:

我在使用 oracle 11g 中的选择查询格式化列长度时遇到问题。这是我的表结构:

我正在尝试将 judul_buku 长度格式化为 50,但是当我使用 RPAD 语法时它似乎不起作用。 这是我的查询:

SELECT rpad(b.judul_buku, 50) as "Buku"
from buku b;

这是输出(输出错误,因为长度超过 50)。

我试图搜索如何从选择查询中格式化列长度,但我找不到正确的关键字来搜索它,所以我找不到任何语法来更改列长度。

我正在使用 oracle 11g,我无法更改版本,因为我的讲师告诉我使用 oracle 11g,她只教 RPAD 和 LPAD 以减少列长度(这对我和我的朋友不起作用)。

有没有其他方法可以减少列长度而不是 RPAD LPAD ?

【问题讨论】:

  • col buku format a50
  • @WilliamRobertson 我只是把那个语法放在选择查询之前?
  • 在 SQL*Plus 中,您使用 columnlinesize 等设置作为脚本 (see docs) 的一部分应用所有格式。将命令放在您想要的任何位置。请注意,这都是特定于 SQL*Plus 工具的,一般不适用于 Oracle 或 SQL。
  • 好的,谢谢你的解释。

标签: sql oracle sqlplus


【解决方案1】:

投射到char(50) 怎么样?

select cast(b.judul_buku as char(50)) as "Buku"
from buku b;

这会设置类型并在值较短时用 50 个空格填充值。也就是说,这种类型的格式化通常在应用程序中完成。

【讨论】:

  • 谢谢,这正是我要找的:)
  • 强制转换为 varchar2 也适用于 SQL*Plus(因为它检测数据类型)并避免破坏“永远不要使用 CHAR”规则 :)
猜你喜欢
  • 2015-01-21
  • 2016-07-31
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 2015-10-16
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
相关资源
最近更新 更多