列别名被截断

时间:2012-10-09 14:47:02

标签: sql oracle sqlplus

使用SQL * Plus我正在尝试使用select union语句来组合同一个表中两列的结果,如下所示:

select substr(startdate,4,3) milestone 
  from projects 
union 
select substr(enddate,4,3) milestone 
  from projects

使用别名milestone作为列,但由于某种原因,结果会显示列名mil。它由于某种原因被截断,我认为substr部分是问题,因为它从stardateenddate列中抓取了3个字符。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

这是因为你使用的是sql-plus。如果我在我的数据库GUI(PL / SQL开发人员)中运行相同的查询,它工作正常但在sqlplus中它只是截断列标题以适应数据。

我不是sqlplus的大师,但这解决了这个问题:

SQL> column milestone format a20;
SQL> select substr(sysdate,4,3) milestone from dual;

结果:

MILESTONE
--------------------
OCT

答案 1 :(得分:3)

您很可能需要设置列宽。

COLUMN MILESTONE FORMAT A20
SET VERIFY ON
SET HEADING ON
SET PAGES 25
SET LINES 60

select substr(startdate,4,3) milestone 
  from projects 
union 
select substr(enddate,4,3) milestone 
  from projects

答案 2 :(得分:0)

这是否有帮助 -

SQL> set linesize 100
SQL> column milestone format a25
SQL> select substr(startdate,4,3) "milestone"
  from projects 
union 
select substr(enddate,4,3) "milestone" 
  from projects;