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

原文链接:https://blog.csdn.net/Giving_bestself/article/details/89515390

                  https://www.jdynew.com/help/index.php/zenme/16650.html

    • 问题描述

      SQL SERVER导入xlsx、csv等文件数据时, 数据中常常会有CHAR(10),CHAR(13),CHAR(9)(\t,\r,\n)等隐藏字符,导致查询匹配不上。

      char(9) \t 水平制表符
      char(10) \r 回车
      char(13) \n 换行

    • 不改数据情况下查询:
       SELECT 字段 FROM 表名 
       WHERE REPLACE(REPLACE(REPLACE([字段],CHAR(9),''),CHAR(10),''),CHAR(13),'') = '查询条件'  
    •  

      • 使用SQL Server实现换行符,主要是使用CHAR()函数,CHAR()函数可以将一个字母或特殊符号转换成ASCII可识别的码,换行符在ASCII表中对应的码为 10 和 13,因此,我们可以使用CHAR(10 )或CHAR(13)来代表换行符: 

        例:SELECTCHAR(10 )as ‘row break’ 

        结果:

        row break 

        同时,CHAR()函数也可以指定多个参数,以表示不同的换行符: 

        例:SELECT CHAR(13,10 )as ‘row break by ctrl+enter’ 

        结果:

        row break by ctrl + enter 

        另外, 我们也可以使用 CONCAT() 函数来实现换行,不过,需要注意的是 CONCAT() 函数的参数必须是字符串类型,否则会报错: 

        例:SELECT CONCAT(‘hello’,CHAR(10),’world’) as ‘row break by CONCAT’ 

        结果:

        row break by CONCAT 

        总结:通过本文的介绍,我们可以看到,在SQL Server中使用CHAR()函数和CONCAT()函数,我们可以实现多行文本和换行符的输入,从而更方便地输入编程语句,有效提高工作效率。

posted @ 2024-10-14 15:42  yinghualeihenmei  阅读(137)  评论(0编辑  收藏  举报