修剪和替换功能无法使用INTO语句删除间距

时间:2018-02-08 20:36:59

标签: sql sql-server sql-server-2016

我尝试使用MSSQL中的LTRIM和RTRIM函数从数据库中的列中删除一些前导/尾随空格。当我只选择数据时,修剪功能正常工作:

    SELECT LTRIM(RTRIM(mycolumn))
    FROM mytable

但是,当我使用INTO语句将相同的查询写入表时,尾随空格仍保留在数据中。在尝试移动制表符和缩进时,我遇到与replace函数完全相同的问题。我错过了什么?

2 个答案:

答案 0 :(得分:0)

即使您修剪数据但使用的是选择INTO,新表中的数据类型也将与源表的数据类型相同。我猜你的源表中有char吗?将列选择为varchar时转换列,尾随空格将消失。

SELECT convert(varchar(50), LTRIM(RTRIM(mycolumn)))
INTO MyNewTable
FROM mytable

答案 1 :(得分:0)

为什么不在执行INTO语句之前先更新表以进行清理:

UPDATE mytable SET mycolumn = LTRIM(RTRIM(mycolumn))

SELECT mycolumn
INTO MyNewTable
FROM mytable