SQL SERVER 数据中有CHAR(10),CHAR(13),CHAR(9)隐藏字符导致查询失效

  • 问题描述

    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),'')
    
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值