-
问题描述
SQL SERVER导入xlsx、csv等文件数据时, 数据中常常会有CHAR(10),CHAR(13),CHAR(9)(\t,\r,\n)等隐藏字符,导致查询匹配不上。
char(9) \t 水平制表符
char(10) \r 回车
char(13) \n 换行 -
查看方式:
select 字段,len(字段) as 原长度, len(REPLACE(REPLACE(REPLACE(字段,CHAR(9),''),CHAR(10),''),CHAR(13),'')) as 去掉后长度 from 表名 -- Msyql中的验证方式:将len()函数替换为char_length()(汉字和字母都是1个字符,与length()有区别)
-
解决方案:
不改数据情况下查询:
SELECT 字段 FROM 表名 WHERE REPLACE(REPLACE(REPLACE([字段],CHAR(9),''),CHAR(10),''),CHAR(13),'') = '查询条件'
替换数据库中的数据:
UPDATE 表名 SET 字段 = REPLACE(REPLACE(REPLACE([字段],CHAR(9),''),CHAR(10),''),CHAR(13),'')
SQL SERVER 数据中有CHAR(10),CHAR(13),CHAR(9)隐藏字符导致查询失效
最新推荐文章于 2025-02-23 11:36:42 发布