2017-09-11 9 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機能(iserie上V7R2)有効にした場合:

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