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 换行 - 不改数据情况下查询:
12
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()函数,我们可以实现多行文本和换行符的输入,从而更方便地输入编程语句,有效提高工作效率。
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享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#事务的使用