MSSQL字段去掉excel复制过来的换行符
今天处理Excel表格导入到Sql service的数据,发现在统计数据时出错,后来发现是因为复制时,带有换行符,导致查询语句时不能统计到 。
用like可以查后,用=不能查到。
解决方案:使用 REPLACE
函数嵌套替换,同时处理回车符(CHAR (13))和换行符(CHAR (10)):
update t_ProductInOutDetailed set FBatch= LTRIM(RTRIM(FBatch)),FMaterialNo= LTRIM(RTRIM(FMaterialNo))
update t_ProductInOutDetailed set FBatch=REPLACE(REPLACE(FBatch, CHAR(13), ''), CHAR(10), ''),FMaterialNo=REPLACE(REPLACE(FMaterialNo, CHAR(13), ''), CHAR(10), '')
- Excel 中的换行符本质是
CHAR(13)
(回车,对应 ASCII 码 13)和CHAR(10)
(换行,对应 ASCII 码 10),两者常同时出现,需同时处理。 - 若字段中还存在其他空白字符(如制表符
CHAR(9)
),可在嵌套中继续添加REPLACE
处理,例如:sql
-- 同时去除回车、换行、制表符 REPLACE(REPLACE(REPLACE(字段名, CHAR(13), ''), CHAR(10), ''), CHAR(9), '')
- 操作前建议通过
SELECT
语句验证处理结果,确认无误后再执行UPDATE
,避免误修改数据。