2017-09-11 150 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