我尝试使用MSSQL中的LTRIM和RTRIM函数从数据库中的列中删除一些前导/尾随空格。当我只选择数据时,修剪功能正常工作:
SELECT LTRIM(RTRIM(mycolumn))
FROM mytable
但是,当我使用INTO语句将相同的查询写入表时,尾随空格仍保留在数据中。在尝试移动制表符和缩进时,我遇到与replace函数完全相同的问题。我错过了什么?
答案 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