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 换行

    • 不改数据情况下查询:
      1
      2
      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 @   yinghualeihenmei  阅读(256)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-10-14 IIS 绿盟检测到HOST头攻击漏洞的解决: web应用使用SERVER_NAME而非host header。
2022-10-14 C#事务的使用
点击右上角即可分享
微信分享提示