2017-09-11 81 views
1

我试图删除尾随空格没有成功:无法删除尾随空格

select trim(trailing ' ' from '1234      '), '56' from sysibm.sysdummy1; 
1       2 
--------------------------- -- 
1234      56 

我缺少什么?

回答

5

据记载,微调将保持数据类型是 - 检查出Knowledge Center

describe "select trim('1234      '), '56' from sysibm.sysdummy1" 


Column Information 

Number of columns: 2 

SQL type    Type length Column name      Name length 
-------------------- ----------- ------------------------------ ----------- 
448 VARCHAR     27 1           1 
448 VARCHAR     2 2           1 

如果您想要将结果的外观/数据类型更改为您需要的长度或数据类型

select varchar(trim('1234      '), 5), '56' from sysibm.sysdummy1" 

1  2 
----- -- 
1234 56 

1 record(s) selected. 
2

你的意思是:

select trim(trailing ' ' from '1234      ')|| '56' from sysibm.sysdummy1 

具体做法是:

select length(trim(trailing ' ' from '1234      ')|| '56') from sysibm.sysdummy1; 


1   
----------- 
      6 

    1 record(s) selected 

. 
+0

它的工作原理是“1234”之间消除空间和“56”,但仍然得到的字符串已全部尾随空格。我的主要问题不是连接,而是要裁减空白。 –

+0

如果你仔细想想,这个答案证明尾部空格被删除。 – WarrenT

+0

@ClodoaldoNeto也许你认为他们在那里只是因为列仍然以原始宽度显示。再看一遍,上面的答案显示了长度为6,证明结果中没有尾随空白。/column /本身保留原始定义(请参阅Michael的答案),但列中的/ value /只有6个字符长。 – WarrenT

0

其他的方法,如果您的DB2版本使RPAD功能(V7R2上iserie):

select rpad('1234      ', 5, ' '), '56' 
from sysibm.sysdummy1