2016-11-09 77 views
0

我在DB2表中有一列,其中数据行由两个字符串组成,string1string2。它们之间有许多空白字符,我试图删除它们。显示空白的db2连接行

当我运行以下,我看到预期的结果,这是string1string2

SELECT REPLACE(COLUMN,'','')FROM Source_Table;

然而,当我尝试了清洁的行插入一个新表,数据仍然包含string1string2之间的空白。

INSERT INTO Target_Table(柱)

选择替换(柱,””, '')FROM Source_Table;

+0

我试试这些,一切正常,你能否在你的表中提供样本数据。什么是你的列的数据类型。 –

回答

2

您可能已将您的列声明为CHAR,并且DB2正在使用空格填充列中未使用的空间。这是设计。

如果你想避免这种情况,你应该声明列VARCHAR

而且在你SELECT您应该使用TRIMRTRIM功能去除,而不是REPLACE()

+0

你是对的我已经使用了'CHAR',我会尝试'VARCHAR'。谢谢! – joshi123

+2

如果原始数据保持为CHAR,则仍然需要'TRIMR()'。否则,您需要将原始数据更改为“VARCHAR”,并确保数据在加载时被修剪。 – Charles

+0

除了他说“数据仍然包含空格BETWEEN string1和string2”.... – Esperento57

0

您可以使用装饰的withespaces/rtrim喜欢上面说的你,或者剥离功能