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

SQL Server数据库 专栏收录该内容
2 篇文章 0 订阅
  • 问题描述

    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),'')
    
  • 1
    点赞
  • 2
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值