2017-04-17 39 views
0

假设我的表中有一个facility列,它的数据类型为VARCHAR2(300),如果我调用一个查询来显示此列中的记录,并且我没有使用全部300个字符,则所有字符显示使用了大量的空白空间。如何从Oracle SQL中的字符串中选择一定数量的字符?

有没有一种方法可以根据使用的字符数量显示结果,而不仅仅显示全部300个字符?

这里是我的SQL代码:

SELECT Depot_Depot_ID AS "Depot ID", facilities FORM BUS; 

    THIS IS THE RESULT I GET... 

RESULTS IMAGE

感谢。

+0

为什么不能使用TRIM功能?这很明显 – FLICKER

+0

我尝试过使用RTRIM函数,但是我无法得到它的工作:/仍然得到相同的结果 –

+0

这听起来像是SQL \ * Plus问题,而不是Oracle SQL问题。在SQL \ * Plus中,发出命令“COLUMN”库ID“FORMAT A50”(如果你希望结果在宽度为50的列中)。不要用分号';'结束命令,因为这是一个SQL \ * Plus命令,它不是一个SQL语句。 – mathguy

回答

0

我没有甲骨文测试,但这种可能工作

declare maxlen number 
SELECT max(LENGTH(TRIM(facilities))) INTO maxlen FROM BUS; 

SELECT Depot_Depot_ID AS "Depot ID", cast(facilities as varchar(maxlen)) FORM BUS; 
0

好了,我发现我一直在寻找的答案。而不是TRIM或任何我只使用SELECT CAST(facilities AS CHAR(80)) AS "Facilities" FROM BUS;,它只是显示“设施”列的前80个字符

相关问题