使用SQL * Plus我正在尝试使用select union语句来组合同一个表中两列的结果,如下所示:
select substr(startdate,4,3) milestone
from projects
union
select substr(enddate,4,3) milestone
from projects
使用别名milestone
作为列,但由于某种原因,结果会显示列名mil
。它由于某种原因被截断,我认为substr
部分是问题,因为它从stardate
和enddate
列中抓取了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;