Db2 Can';t删除尾随空格

Db2 Can';t删除尾随空格,db2,trim,db2-luw,Db2,Trim,Db2 Luw,我试图删除尾随空格,但没有成功: select trim(trailing ' ' from '1234 '), '56' from sysibm.sysdummy1; 1 2 --------------------------- -- 1234 56 我错过了什么?你是说: select trim(trailing ' ' from '1234

我试图删除尾随空格,但没有成功:

select trim(trailing ' ' from '1234                       '), '56' from sysibm.sysdummy1;
1                           2 
--------------------------- --
1234                        56
我错过了什么?你是说:

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

.
你是说:

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

.

有文件证明trim将保持数据类型不变-请查看

如果要更改结果的外观/数据类型,可以将其强制转换为所需的长度或数据类型

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

1     2
----- --  
1234  56

1 record(s) selected.

有文件证明trim将保持数据类型不变-请查看

如果要更改结果的外观/数据类型,可以将其强制转换为所需的长度或数据类型

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

1     2
----- --  
1234  56

1 record(s) selected.

其他方法,如果您的db2版本启用RPAD函数(iSeries上的V7R2):


其他方法,如果您的db2版本启用RPAD函数(iSeries上的V7R2):


它的工作原理是删除“1234”和“56”之间的空格,但结果字符串仍然包含所有尾随空格。我的主要问题不是连接,而是修剪空白。如果你仔细想想,这个答案证明尾随空格被删除了。@ClodoaldoNeto也许你只是因为列仍以原始宽度显示而假设它们在那里。再看一遍,上面的答案显示长度为6,证明结果中没有尾随空格。/column/本身保留了原始定义(请参见Michael的答案),但该列中的/value/只有6个字符长。它通过删除“1234”和“56”之间的空格来工作,但结果字符串仍然包含所有尾随空格。我的主要问题不是连接,而是修剪空白。如果你仔细想想,这个答案证明尾随空格被删除了。@ClodoaldoNeto也许你只是因为列仍以原始宽度显示而假设它们在那里。再看一遍,上面的答案显示长度为6,证明结果中没有尾随空格。/column/本身保留了原始定义(请参见Michael的答案),但该列中的/value/只有6个字符长。